@@ -9,7 +9,10 @@ title: Shell (:dojo)
99<div class="row">
1010<div class="col-md-8">
1111
12−The `:dojo` is the place to quickly experiment with Urbit. At first glance the `:dojo` is just a Hoon REPL. Looking a bit deeper the `:dojo` is set up to make operating on and transforming data in Urbit easy.
12+The `:dojo` is the place to quickly experiment with Urbit. On
13+the surface the `:dojo` is just a Hoon REPL. On the inside, the
14+`:dojo` is a system for operating on and transforming data in
15+Urbit.
1316
1417</div>
1518</div>
@@ -21,7 +24,7 @@ Evaluate a hoon expression:
2124 ~your-urbit:dojo> (add 2 2)
2225 ~your-urbit:dojo> %+ add 2 2
2326
24−Tall form Hoon will be prompted for:
27+Tall form Hoon may require multiple lines:
2528
2629 ~your-urbit:dojo> %+ add
2730 ~your-urbit:dojo< 2
@@ -47,6 +50,65 @@ Run system commands from `:hood`, like `reload`, using `|`:
4750
4851 ~your-urbit:dojo> |reload %eyre
4952
53+
54+### Generators
55+
56+**`+cat`** - Similar to Unix `cat`. Accepts a path.
57+
58+ ~your-urbit:dojo> +cat %/web/md
59+ ~your-urbit:dojo> +cat /~talsur-todres/home/2/web/notes/md
60+
61+**`+curl`** - Similar to Unix `curl`. Accepts a `tape`.
62+
63+ ~your-urbit:dojo> +curl "http://nyt.com"
64+
65+**`+hello`** - Just prints the argument. Accepts a `@ta`.
66+
67+ ~your-urbit:dojo> +hello 'mars'
68+
69+**`+ls`** - Similar to Unix `ls`. Accepts a path.
70+
71+ ~your-urbit:dojo> +ls %/web
72+ ~your-urbit:dojo> +ls /~talsur-todres/home/2/web/notes
73+
74+**`+moon`** - Generate a random moon from a planet. No arguments.
75+
76+**`+solid`** - Compile the current state of the kernel and output a noun. Usually downloaded to a file in unix. No arguments.
77+
78+ ~your-urbit:dojo> .urbit/pill +solid
79+
80+**`+ticket`** - Generate a ticket for an Urbit plot. Takes an Urbit name (`@p`).
81+
82+ ~your-urbit:dojo> +ticket ~talsur-todres-your-urbit
83+
84+**`+tree`** - Generate a recursive directory listing. Takes a path.
85+
86+ ~your-urbit:dojo> +tree %/web
87+
88+### Hood
89+
90+The hood is the system daemon. See `gen/hood` and `app/hood`.
91+
92+**`|hi`** - Sends a direct message. Sort of like Unix `write`. Accepts an urbit name (`@p`) and a string (`cord`).
93+
94+ ~your-urbit:dojo> |hi ~doznec 'you there?'
95+
96+**`|link`** / **`|unlink`** - Link / unlink a remote app. Accepts an Urbit name and an app name.
97+
98+ ~your-urbit:dojo> |link ~talsur-todres %octo
99+
100+**`|mass`** - Prints the current memory usage of all the kernel modules. No arguments.
101+
102+**`|reload`** - Reloads a kernel module (vane) from source. Accepts any number of vane names.
103+
104+ ~your-urbit:dojo> |reload %clay %eyre
105+
106+**`|reset`** - Reloads `hoon.hoon`. No arguments.
107+
108+**`|start`** - Starts an app. Accepts an app name.
109+
110+ ~your-urbit:dojo> |start %curl
111+
50112## Manual
51113
52114<h3 class="first child">Sources and sinks</h3>
@@ -131,6 +193,9 @@ Use `_` to run a gate (or function):
131193
132194`-http[s]://example.com &json [%s 'hi']` - sends a PUT request with the JSON `"hi"` in the body.
133195
196+Note that the first of these is a source while the last two are
197+sinks.
198+
134199#### `+` - Generators
135200
136201Generators are simple hoon scripts loaded from the filesystem. They live in `gen/`.
@@ -209,61 +274,3 @@ The current urbit plot. Read-only.
209274 ~your-urbit:dojo> eny
210275 :: produces
211276 0v1o.m2vio.j5ieb.7tq84.5kcnp.gjn04.9gl2e.tkj5v.0oqk3.iugk8.rhu6o
212−
213−### Generators
214−
215−**`+cat`** - Similar to Unix `cat`. Accepts a path.
216−
217− ~your-urbit:dojo> +cat %/web/md
218− ~your-urbit:dojo> +cat /~talsur-todres/home/2/web/notes/md
219−
220−**`+curl`** - Similar to Unix `curl`. Accepts a `tape`.
221−
222− ~your-urbit:dojo> +curl "http://nyt.com"
223−
224−**`+hello`** - Just prints the argument. Accepts a `@ta`.
225−
226− ~your-urbit:dojo> +hello 'mars'
227−
228−**`+ls`** - Similar to Unix `ls`. Accepts a path.
229−
230− ~your-urbit:dojo> +ls %/web
231− ~your-urbit:dojo> +ls /~talsur-todres/home/2/web/notes
232−
233−**`+moon`** - Generate a random moon from a planet. No arguments.
234−
235−**`+solid`** - Compile the current state of the kernel and output a noun. Usually downloaded to a file in unix. No arguments.
236−
237− ~your-urbit:dojo> .urbit/pill +solid
238−
239−**`+ticket`** - Generate a ticket for an Urbit plot. Takes an Urbit name (`@p`).
240−
241− ~your-urbit:dojo> +ticket ~talsur-todres-your-urbit
242−
243−**`+tree`** - Generate a recursive directory listing. Takes a path.
244−
245− ~your-urbit:dojo> +tree %/web
246−
247−### Hood
248−
249−The hood is the system daemon. See `gen/hood` and `app/hood`.
250−
251−**`|hi`** - Sends a direct message. Sort of like Unix `write`. Accepts an urbit name (`@p`) and a string (`cord`).
252−
253− ~your-urbit:dojo> |hi ~doznec 'you there?'
254−
255−**`|link`** / **`|unlink`** - Link / unlink a remote app. Accepts an Urbit name and an app name.
256−
257− ~your-urbit:dojo> |link ~talsur-todres %octo
258−
259−**`|mass`** - Prints the current memory usage of all the kernel modules. No arguments.
260−
261−**`|reload`** - Reloads a kernel module (vane) from source. Accepts any number of vane names.
262−
263− ~your-urbit:dojo> |reload %clay %eyre
264−
265−**`|reset`** - Reloads `hoon.hoon`. No arguments.
266−
267−**`|start`** - Starts an app. Accepts an app name.
268−
269− ~your-urbit:dojo> |start %curl