diff --git a/cmd/jiri/doc.go b/cmd/jiri/doc.go
index 5215073..ac07025 100644
--- a/cmd/jiri/doc.go
+++ b/cmd/jiri/doc.go
@@ -506,10 +506,11 @@
 Inspect the local filesystem and provide structured info on the existing
 projects and branches. Projects are specified using regular expressions that are
 matched against project keys. If no command line arguments are provided the
-project that the contains the current directory is used. The information to be
-displayed is specified using a go template, supplied via the -f flag, that is
-executed against the v.io/jiri/project.ProjectState structure. This structure
-currently has the following fields:
+project that the contains the current directory is used, or if run from outside
+of a given project, all projects will be used. The information to be displayed
+is specified using a go template, supplied via the -f flag, that is executed
+against the v.io/jiri/project.ProjectState structure. This structure currently
+has the following fields:
 project.ProjectState{Branches:[]project.BranchState(nil), CurrentBranch:"",
 HasUncommitted:false, HasUntracked:false, Project:project.Project{Name:"",
 Path:"", Protocol:"", Remote:"", RemoteBranch:"", Revision:"", GerritHost:"",
diff --git a/cmd/jiri/project.go b/cmd/jiri/project.go
index 86ced20..664446c 100644
--- a/cmd/jiri/project.go
+++ b/cmd/jiri/project.go
@@ -139,7 +139,8 @@
 Inspect the local filesystem and provide structured info on the existing projects
 and branches. Projects are specified using regular expressions that are matched
 against project keys. If no command line arguments are provided the project
-that the contains the current directory is used. The information to be
+that the contains the current directory is used, or if run from outside
+of a given project, all projects will be used. The information to be
 displayed is specified using a go template, supplied via the -f flag, that is
 executed against the v.io/jiri/project.ProjectState structure. This structure
 currently has the following fields: ` + fmt.Sprintf("%#v", project.ProjectState{}),
@@ -183,12 +184,21 @@
 		}
 		state, err := project.GetProjectState(jirix, currentProjectKey, true)
 		if err != nil {
-			return err
+			// jiri was run from outside of a project so let's
+			// use all available projects.
+			states, err = project.GetProjectStates(jirix, dirty)
+			if err != nil {
+				return err
+			}
+			for key := range states {
+				keys = append(keys, key)
+			}
+		} else {
+			states = map[project.ProjectKey]*project.ProjectState{
+				currentProjectKey: state,
+			}
+			keys = append(keys, currentProjectKey)
 		}
-		states = map[project.ProjectKey]*project.ProjectState{
-			currentProjectKey: state,
-		}
-		keys = append(keys, currentProjectKey)
 	} else {
 		var err error
 		states, err = project.GetProjectStates(jirix, dirty)
