diff --git a/cmdline/.api b/cmdline/.api
index 9067aa0..a0a8b60 100644
--- a/cmdline/.api
+++ b/cmdline/.api
@@ -1,8 +1,8 @@
 pkg cmdline, const ErrUsage ErrExitCode
+pkg cmdline, func EnvFromOS() *Env
 pkg cmdline, func ExitCode(error, io.Writer) int
 pkg cmdline, func HideGlobalFlagsExcept(...*regexp.Regexp)
 pkg cmdline, func Main(*Command)
-pkg cmdline, func NewEnv() *Env
 pkg cmdline, func Parse(*Command, *Env, []string) (Runner, []string, error)
 pkg cmdline, func ParseAndRun(*Command, *Env, []string) error
 pkg cmdline, method (*Env) UsageErrorf(string, ...interface{}) error
diff --git a/cmdline/cmdline.go b/cmdline/cmdline.go
index 38bd93a..7b1ddbc 100644
--- a/cmdline/cmdline.go
+++ b/cmdline/cmdline.go
@@ -109,7 +109,7 @@
 //     cmdline.Main(root)
 //   }
 func Main(root *Command) {
-	env := NewEnv()
+	env := EnvFromOS()
 	err := ParseAndRun(root, env, os.Args[1:])
 	os.Exit(ExitCode(err, env.Stderr))
 }
@@ -130,7 +130,7 @@
 //   var root := &cmdline.Command{...}
 //
 //   func main() {
-//     env := cmdline.NewEnv()
+//     env := cmdline.EnvFromOS()
 //     os.Exit(cmdline.ExitCode(parseAndRun(env), env.Stderr))
 //   }
 //
diff --git a/cmdline/cmdline_test.go b/cmdline/cmdline_test.go
index ecdf043..acec00c 100644
--- a/cmdline/cmdline_test.go
+++ b/cmdline/cmdline_test.go
@@ -2394,7 +2394,7 @@
 	rs := root.Flags.String("rstring", "abc", "rstring desc")
 	origFlags := flag.CommandLine
 	// Parse and make sure the flags get set appropriately.
-	_, _, err := Parse(root, NewEnv(), []string{"-rbool=true", "-rstring=XYZ"})
+	_, _, err := Parse(root, EnvFromOS(), []string{"-rbool=true", "-rstring=XYZ"})
 	if err != nil {
 		t.Fatalf("Parse failed: %v", err)
 	}
diff --git a/cmdline/env.go b/cmdline/env.go
index df06fa5..77ff558 100644
--- a/cmdline/env.go
+++ b/cmdline/env.go
@@ -14,8 +14,8 @@
 	"v.io/x/lib/textutil"
 )
 
-// NewEnv returns a new environment with defaults based on the operating system.
-func NewEnv() *Env {
+// EnvFromOS returns a new environment based on the operating system.
+func EnvFromOS() *Env {
 	return &Env{
 		Stdin:  os.Stdin,
 		Stdout: os.Stdout,
@@ -25,7 +25,7 @@
 }
 
 // Env represents the environment for command parsing and running.  Typically
-// NewEnv is used to produce a default environment.  The environment may be
+// EnvFromOS is used to produce a default environment.  The environment may be
 // explicitly set for finer control; e.g. in tests.
 type Env struct {
 	Stdin  io.Reader
diff --git a/cmdline/env_test.go b/cmdline/env_test.go
index 86bc819..ba50535 100644
--- a/cmdline/env_test.go
+++ b/cmdline/env_test.go
@@ -60,7 +60,7 @@
 		// Test using the OS environment.
 		if err := os.Setenv("CMDLINE_WIDTH", test.value); err != nil {
 			t.Errorf("Setenv(%q) failed: %v", test.value, err)
-		} else if got, want := NewEnv().width(), test.want; got != want {
+		} else if got, want := EnvFromOS().width(), test.want; got != want {
 			t.Errorf("%q got %v, want %v", test.value, got, want)
 		}
 	}
@@ -88,7 +88,7 @@
 		// Test using the OS environment.
 		if err := os.Setenv("CMDLINE_STYLE", test.value); err != nil {
 			t.Errorf("Setenv(%q) failed: %v", test.value, err)
-		} else if got, want := NewEnv().style(), test.want; got != want {
+		} else if got, want := EnvFromOS().style(), test.want; got != want {
 			t.Errorf("%q got %v, want %v", test.value, got, want)
 		}
 	}
