diff --git a/pkg/tool/cli/cli.go b/pkg/tool/cli/cli.go
index 1a5fb26..4b41c09 100644
--- a/pkg/tool/cli/cli.go
+++ b/pkg/tool/cli/cli.go
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Package cli provides tasks dealing with a console.
 package cli
 
+//go:generate go run gen.go
+
 import (
 	"fmt"
 
diff --git a/pkg/tool/cli/doc.go b/pkg/tool/cli/doc.go
new file mode 100644
index 0000000..7199ea0
--- /dev/null
+++ b/pkg/tool/cli/doc.go
@@ -0,0 +1,15 @@
+// Code generated by cue get go. DO NOT EDIT.
+
+// Package cli provides tasks dealing with a console.
+//
+// These are the supported tasks:
+//
+//     // Print sends text to the stdout of the current process.
+//     Print: {
+//     	kind: "tool/cli.Print"
+//
+//     	// text is the text to be printed.
+//     	text: string
+//     }
+//
+package cli
diff --git a/pkg/tool/cli/gen.go b/pkg/tool/cli/gen.go
new file mode 100644
index 0000000..4325b72
--- /dev/null
+++ b/pkg/tool/cli/gen.go
@@ -0,0 +1,46 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build ignore
+
+package main
+
+// TODO: remove when we have a cuedoc server. Until then,
+// piggyback on godoc.org.
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"os"
+)
+
+const msg = `// Code generated by cue get go. DO NOT EDIT.
+
+// Package cli provides tasks dealing with a console.
+//
+// These are the supported tasks:
+//     %s
+package cli
+`
+
+func main() {
+	f, _ := os.Create("doc.go")
+	defer f.Close()
+	b, _ := ioutil.ReadFile("cli.cue")
+	i := bytes.Index(b, []byte("package cli"))
+	b = b[i+len("package cli")+1:]
+	b = bytes.ReplaceAll(b, []byte("\n"), []byte("\n//     "))
+	fmt.Fprintf(f, msg, string(b))
+}
diff --git a/pkg/tool/doc.go b/pkg/tool/doc.go
new file mode 100644
index 0000000..0ddc762
--- /dev/null
+++ b/pkg/tool/doc.go
@@ -0,0 +1,51 @@
+// Code generated by cue get go. DO NOT EDIT.
+
+// Package tool defines statefull operation types for cue commands.
+//
+// This package is only visible in cue files with a _tool.cue or _tool_test.cue
+// ending.
+//
+// CUE configuration files are not influenced by and do not influence anything
+// outside the configuration itself: they are hermetic. Tools solve
+// two problems: allow outside values such as environment variables,
+// file or web contents, random generators etc. to influence configuration,
+// and allow configuration to be actionable from within the tooling itself.
+// Separating these concerns makes it clear to user when outside influences are
+// in play and the tool definition can be strict about what is allowed.
+//
+// Tools are defined in files ending with _tool.cue. These files have a
+// top-level map, "command", which defines all the tools made available through
+// the cue command.
+//
+// The following definitions are for defining commands in tool files:
+//
+//     // A Command specifies a user-defined command.
+//     Command: {
+//     	//
+//     	// Example:
+//     	//     mycmd [-n] names
+//     	usage?: string
+//
+//     	// short is short description of what the command does.
+//     	short?: string
+//
+//     	// long is a longer description that spans multiple lines and
+//     	// likely contain examples of usage of the command.
+//     	long?: string
+//
+//     	// TODO: define flags and environment variables.
+//
+//     	// tasks specifies the list of things to do to run command. Tasks are
+//     	// typically underspecified and completed by the particular internal
+//     	// handler that is running them. Task de
+//     	tasks <name>: Task
+//     }
+//
+//     // A Task defines a step in the execution of a command.
+//     Task: {
+//     	// kind indicates the operation to run. It must be of the form
+//     	// packagePath.Operation.
+//     	kind: =~#"\."#
+//     }
+//
+package tool
diff --git a/pkg/tool/exec/doc.go b/pkg/tool/exec/doc.go
new file mode 100644
index 0000000..67632e0
--- /dev/null
+++ b/pkg/tool/exec/doc.go
@@ -0,0 +1,38 @@
+// Code generated by cue get go. DO NOT EDIT.
+
+// Package exec defines tasks for running commands.
+//
+// These are the supported tasks:
+//
+//     // Run executes the given shell command.
+//     Run: {
+//     	kind: "tool/exec.Run"
+//
+//     	// cmd is the command to run.
+//     	cmd: string | [string, ...string]
+//
+//     	// install is an optional command to install the binaries needed
+//     	// to run the command.
+//     	install?: string | [string, ...string]
+//
+//     	// env defines the environment variables to use for this system.
+//     	env <Key>: string
+//
+//     	// stdout captures the output from stdout if it is of type bytes or string.
+//     	// The default value of null indicates it is redirected to the stdout of the
+//     	// current process.
+//     	stdout: *null | string | bytes
+//
+//     	// stderr is like stdout, but for errors.
+//     	stderr: *null | string | bytes
+//
+//     	// stdin specifies the input for the process.
+//     	stdin?: string | bytes
+//
+//     	// success is set to true when the process terminates with with a zero exit
+//     	// code or false otherwise. The user can explicitly specify the value
+//     	// force a fatal error if the desired success code is not reached.
+//     	success: bool
+//     }
+//
+package exec
diff --git a/pkg/tool/exec/exec.cue b/pkg/tool/exec/exec.cue
index 585bf4f..78efc4e 100644
--- a/pkg/tool/exec/exec.cue
+++ b/pkg/tool/exec/exec.cue
@@ -44,12 +44,3 @@
 	// force a fatal error if the desired success code is not reached.
 	success: bool
 }
-
-/* TODO
-// Env collects the environment variables of the current process.
-Env: {
-	kind: "tool/exec.Env"
-
-	env <Name>: string | number
-}
-*/
diff --git a/pkg/tool/exec/exec.go b/pkg/tool/exec/exec.go
index 169508e..9b68797 100644
--- a/pkg/tool/exec/exec.go
+++ b/pkg/tool/exec/exec.go
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Package exec defines tasks for running commands.
 package exec
 
+//go:generate go run gen.go
+
 import (
 	"errors"
 	"fmt"
diff --git a/pkg/tool/exec/gen.go b/pkg/tool/exec/gen.go
new file mode 100644
index 0000000..c8bc071
--- /dev/null
+++ b/pkg/tool/exec/gen.go
@@ -0,0 +1,46 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build ignore
+
+package main
+
+// TODO: remove when we have a cuedoc server. Until then,
+// piggyback on godoc.org.
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"os"
+)
+
+const msg = `// Code generated by cue get go. DO NOT EDIT.
+
+// Package exec defines tasks for running commands.
+//
+// These are the supported tasks:
+//     %s
+package exec
+`
+
+func main() {
+	f, _ := os.Create("doc.go")
+	defer f.Close()
+	b, _ := ioutil.ReadFile("exec.cue")
+	i := bytes.Index(b, []byte("package exec"))
+	b = b[i+len("package exec")+1:]
+	b = bytes.ReplaceAll(b, []byte("\n"), []byte("\n//     "))
+	fmt.Fprintf(f, msg, string(b))
+}
diff --git a/pkg/tool/file/doc.go b/pkg/tool/file/doc.go
new file mode 100644
index 0000000..e52615f
--- /dev/null
+++ b/pkg/tool/file/doc.go
@@ -0,0 +1,55 @@
+// Code generated by cue get go. DO NOT EDIT.
+
+// Package file provides file operations for cue tasks.
+//
+// These are the supported tasks:
+//
+//     // Read reads the contents of a file.
+//     Read: {
+//     	kind: "tool/file.Read"
+//
+//     	// filename names the file to read.
+//     	filename: !=""
+//
+//     	// contents is the read contents. If the contents are constraint to bytes
+//     	// (the default), the file is read as is. If it is constraint to a string,
+//     	// the contents are checked to be valid UTF-8.
+//     	contents: *bytes | string
+//     }
+//
+//     // Append writes contents to the given file.
+//     Append: {
+//     	kind: "tool/file.Append"
+//
+//     	// filename names the file to append.
+//     	filename: !=""
+//
+//     	// permissions defines the permissions to use if the file does not yet exist.
+//     	permissions: int | *0o644
+//
+//     	// contents specifies the bytes to be written.
+//     	contents: bytes | string
+//     }
+//
+//     // Create writes contents to the given file.
+//     Create: {
+//     	kind: "tool/file.Create"
+//
+//     	// filename names the file to write.
+//     	filename: !=""
+//
+//     	// permissions defines the permissions to use if the file does not yet exist.
+//     	permissions: int | *0o644
+//
+//     	// contents specifies the bytes to be written.
+//     	contents: bytes | string
+//     }
+//
+//     Glob: {
+//     	kind: "tool/file.Glob"
+//
+//     	glob: !=""
+//     	files: [...string]
+//     }
+//
+package file
diff --git a/pkg/tool/file/file.go b/pkg/tool/file/file.go
index e5673cc..29bf6d9 100644
--- a/pkg/tool/file/file.go
+++ b/pkg/tool/file/file.go
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Package file provides file operations for cue tasks.
 package file
 
+//go:generate go run gen.go
+
 import (
 	"io/ioutil"
 	"os"
diff --git a/pkg/tool/file/gen.go b/pkg/tool/file/gen.go
new file mode 100644
index 0000000..a67f796
--- /dev/null
+++ b/pkg/tool/file/gen.go
@@ -0,0 +1,46 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build ignore
+
+package main
+
+// TODO: remove when we have a cuedoc server. Until then,
+// piggyback on godoc.org.
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"os"
+)
+
+const msg = `// Code generated by cue get go. DO NOT EDIT.
+
+// Package file provides file operations for cue tasks.
+//
+// These are the supported tasks:
+//     %s
+package file
+`
+
+func main() {
+	f, _ := os.Create("doc.go")
+	defer f.Close()
+	b, _ := ioutil.ReadFile("file.cue")
+	i := bytes.Index(b, []byte("package file"))
+	b = b[i+len("package file")+1:]
+	b = bytes.ReplaceAll(b, []byte("\n"), []byte("\n//     "))
+	fmt.Fprintf(f, msg, string(b))
+}
diff --git a/pkg/tool/gen.go b/pkg/tool/gen.go
new file mode 100644
index 0000000..6c0ea21
--- /dev/null
+++ b/pkg/tool/gen.go
@@ -0,0 +1,61 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build ignore
+
+package main
+
+// TODO: remove when we have a cuedoc server. Until then,
+// piggyback on godoc.org.
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"os"
+)
+
+const msg = `// Code generated by cue get go. DO NOT EDIT.
+
+// Package tool defines statefull operation types for cue commands.
+//
+// This package is only visible in cue files with a _tool.cue or _tool_test.cue
+// ending.
+//
+// CUE configuration files are not influenced by and do not influence anything
+// outside the configuration itself: they are hermetic. Tools solve
+// two problems: allow outside values such as environment variables,
+// file or web contents, random generators etc. to influence configuration,
+// and allow configuration to be actionable from within the tooling itself.
+// Separating these concerns makes it clear to user when outside influences are
+// in play and the tool definition can be strict about what is allowed.
+//
+// Tools are defined in files ending with _tool.cue. These files have a
+// top-level map, "command", which defines all the tools made available through
+// the cue command.
+//
+// The following definitions are for defining commands in tool files:
+//     %s
+package tool
+`
+
+func main() {
+	f, _ := os.Create("doc.go")
+	defer f.Close()
+	b, _ := ioutil.ReadFile("tool.cue")
+	i := bytes.Index(b, []byte("package tool"))
+	b = b[i+len("package tool")+1:]
+	b = bytes.ReplaceAll(b, []byte("\n"), []byte("\n//     "))
+	fmt.Fprintf(f, msg, string(b))
+}
diff --git a/pkg/tool/generate.go b/pkg/tool/generate.go
new file mode 100644
index 0000000..ba77048
--- /dev/null
+++ b/pkg/tool/generate.go
@@ -0,0 +1,17 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tool
+
+//go:generate go run gen.go
diff --git a/pkg/tool/http/doc.go b/pkg/tool/http/doc.go
new file mode 100644
index 0000000..5827610
--- /dev/null
+++ b/pkg/tool/http/doc.go
@@ -0,0 +1,33 @@
+// Code generated by cue get go. DO NOT EDIT.
+
+// Package http provides tasks related to the HTTP protocol.
+//
+// These are the supported tasks:
+//
+//     Get:    Do & {method: "GET"}
+//     Post:   Do & {method: "POST"}
+//     Put:    Do & {method: "PUT"}
+//     Delete: Do & {method: "DELETE"}
+//
+//     Do: {
+//     	kind: "tool/http.Do"
+//
+//     	method: string
+//     	url:    string // TODO: make url.URL type
+//
+//     	request: {
+//     		body: *bytes | string
+//     		header <Name>:  string | [...string]
+//     		trailer <Name>: string | [...string]
+//     	}
+//     	response: {
+//     		status:     string
+//     		statusCode: int
+//
+//     		body: *bytes | string
+//     		header <Name>:  string | [...string]
+//     		trailer <Name>: string | [...string]
+//     	}
+//     }
+//
+package http
diff --git a/pkg/tool/http/gen.go b/pkg/tool/http/gen.go
new file mode 100644
index 0000000..88c9752
--- /dev/null
+++ b/pkg/tool/http/gen.go
@@ -0,0 +1,46 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// +build ignore
+
+package main
+
+// TODO: remove when we have a cuedoc server. Until then,
+// piggyback on godoc.org.
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"os"
+)
+
+const msg = `// Code generated by cue get go. DO NOT EDIT.
+
+// Package http provides tasks related to the HTTP protocol.
+//
+// These are the supported tasks:
+//     %s
+package http
+`
+
+func main() {
+	f, _ := os.Create("doc.go")
+	defer f.Close()
+	b, _ := ioutil.ReadFile("http.cue")
+	i := bytes.Index(b, []byte("package http"))
+	b = b[i+len("package http")+1:]
+	b = bytes.ReplaceAll(b, []byte("\n"), []byte("\n//     "))
+	fmt.Fprintf(f, msg, string(b))
+}
diff --git a/pkg/tool/http/http.go b/pkg/tool/http/http.go
index 86565b6..f43ff7c 100644
--- a/pkg/tool/http/http.go
+++ b/pkg/tool/http/http.go
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// Package http provides tasks related to the HTTP protocol.
 package http
 
+//go:generate go run gen.go
+
 import (
 	"io"
 	"io/ioutil"
