diff --git a/cmd/jiri/grep.go b/cmd/jiri/grep.go
index 2f37422..2b4f350 100644
--- a/cmd/jiri/grep.go
+++ b/cmd/jiri/grep.go
@@ -6,6 +6,7 @@
 
 import (
 	"fmt"
+	"os"
 	"path/filepath"
 
 	"fuchsia.googlesource.com/jiri"
@@ -21,7 +22,7 @@
 	Long: `
 Run git grep across all projects.
 `,
-	ArgsName: "<query>",
+	ArgsName: "<query> [--] [<pathspec>...]",
 }
 
 var grepFlags struct {
@@ -49,9 +50,32 @@
 }
 
 func doGrep(jirix *jiri.X, args []string) ([]string, error) {
-	if grepFlags.e != "" && len(args) > 0 {
+	var pathSpecs []string
+	lenArgs := len(args)
+	if lenArgs > 0 {
+		for i, a := range os.Args {
+			if a == "--" {
+				pathSpecs = os.Args[i+1:]
+				break
+			}
+		}
+		// we will not find -- if user uses something like jiri grep -- a b,
+		// as flag.Parse() removes '--' in that case, so set args length
+		lenArgs = len(args) - len(pathSpecs)
+		for i, a := range args {
+
+			if a == "--" {
+				args = args[0:i]
+				// reset length
+				lenArgs = len(args)
+				break
+			}
+		}
+	}
+
+	if grepFlags.e != "" && lenArgs > 0 {
 		return nil, jirix.UsageErrorf("No additional argument allowed with flag -e")
-	} else if grepFlags.e == "" && len(args) != 1 {
+	} else if grepFlags.e == "" && lenArgs != 1 {
 		return nil, jirix.UsageErrorf("grep requires one argument")
 	}
 
@@ -68,7 +92,7 @@
 		flags = append(flags, "--color=always")
 	}
 	query := ""
-	if len(args) == 1 {
+	if lenArgs == 1 {
 		query = args[0]
 	}
 	for _, project := range projects {
@@ -77,7 +101,7 @@
 			return nil, err
 		}
 		git := gitutil.New(jirix, gitutil.RootDirOpt(project.Path))
-		lines, err := git.Grep(query, flags...)
+		lines, err := git.Grep(query, pathSpecs, flags...)
 		if err != nil {
 			continue
 		}
diff --git a/gitutil/git.go b/gitutil/git.go
index 88f23d0..ad51338 100644
--- a/gitutil/git.go
+++ b/gitutil/git.go
@@ -585,11 +585,15 @@
 
 // Grep searches for matching text and returns a list of lines from
 // `git grep`.
-func (g *Git) Grep(query string, flags ...string) ([]string, error) {
+func (g *Git) Grep(query string, pathSpecs []string, flags ...string) ([]string, error) {
 	args := append([]string{"grep"}, flags...)
 	if query != "" {
 		args = append(args, query)
 	}
+	if len(pathSpecs) != 0 {
+		args = append(args, "--")
+		args = append(args, pathSpecs...)
+	}
 	// TODO(ianloic): handle patterns that start with "-"
 	// TODO(ianloic): handle different pattern types (-i, -P, -E, etc)
 	// TODO(ianloic): handle different response types (--full-name, -v, --name-only, etc)
