@@ -1,36 +1,37 @@
11---
2−navhome: '/docs'
3−next: True
4−sort: 4
5−title: Messaging (:talk)
2+navhome: /docs/
3+navuptwo: true
4+next: true
5+sort: 5
6+title: Messaging (Talk and Hall)
67---
78
8−# Messaging (`:talk`)
9+# Messaging (Talk and Hall)
910
1011<div class="row">
1112
1213<div class="col-md-8">
1314
14−`:talk` is the built-in frontend for the Urbit messaging and notifications
15−protocol, `:hall`. Today we use `:hall` just to chat and coordinate, but
16−it's really a general purpose piece of infrastructure.
15+Talk is the built-in frontend for the Urbit messaging and notifications
16+protocol, Hall. Today we use Hall to chat and coordinate, but it's really
17+a general purpose piece of infrastructure.
1718
1819For the time being come join us in `/urbit-meta` by using the
1920<a href="#-quickstart">quickstart</a> below.
2021
21−Today `:hall` is sort of like a distributed, encrypted Slack that can be
22−used from the CLI and the browser. There’s no central `:hall` server.
22+Today, Hall is sort of like a distributed, encrypted Slack that can be
23+used from the CLI and the browser. There’s no central Hall server.
2324Any Urbit can host one.
2425
25−`:hall` is a general purpose tool for both aggregating and publishing
26−streams of messages. Applications can use `:hall` as their transport
27−protocol, API connectors can push disparate data sources into `:hall`,
26+Hall is a general purpose tool for both aggregating and publishing
27+streams of messages. Applications can use Hall as their transport
28+protcol, API connectors can push disparate data sources into Hall,
2829and so on. There are lots of things a distributed message protocol can
2930be used for that we haven't even thought of.
3031
31−Here we'll be discussing how to operate the default CLI frontend, `:talk`,
32−to send and receive messages. For a more in-depth look at `:hall`'s
33−internals, take a look at its [documentation](#TODO).
32+Here we'll be discussing how to operate the default CLI frontend, Talk,
33+to send and receive messages. For a more in-depth look at Hall's internals,
34+take a look at its [documentation](../../hall/architecture).
3435
3536</div>
3637
@@ -38,36 +39,39 @@ internals, take a look at its [documentation](#TODO).
3839
3940## Quickstart
4041
41−For the most part we use `:talk` as a single-instance of Slack: one main
42−channel (`/urbit-meta`) and direct messages. Everyone is more than welcome
42+For the most part we use Talk as a single-instance of Slack: one main
43+channel (`/urbit-meta`) and direct messages. Everyone is more than welcome
4344in `/urbit-meta`. It's the place to get help, ask questions and chat about
4445Urbit in general.
4546
4647Let's join `/urbit-meta`:
4748
48−Use `ctrl-x` to switch from `:dojo` to `:talk`.
49+Use `ctrl-x` to switch from Dojo to Talk.
4950
5051To join `/urbit-meta`:
5152
52− ~your-urbit:talk[] ;join /urbit-meta
53+ ~your-urbit:talk> ;join /urbit-meta
5354
54−You'll see:
55+You'll see something like:
5556
5657 --------------| ;join /urbit-meta
57− --------------| new glyph '>'
58− ~your-urbit:talk>
58+ --------------| :: onn /urbit-meta
59+ --------------| bound '=' {[hos=~marzod nom=%urbit-meta]}
60+ --------------| new = /urbit-meta
61+ --------------| /urbit-meta: hey ~marzod hear
62+ ~your-urbit:talk-
5963
6064Post a line to `/urbit-meta`:
6165
62− ~your-urbit:talk> hello, world
66+ ~your-urbit:talk- Hello, world!
6367
6468You'll see, echoed back at you:
6569
66− ~your-urbit> hello, world
70+ ~your-urbit- Hello, world!
6771
6872To send a direct message to someone, first set your audience:
6973
70− ~your-urbit:talk> ;~talsur-todres
74+ ~your-urbit:talk- ;~talsur-todres
7175
7276You'll see your prompt change:
7377
@@ -75,35 +79,48 @@ You'll see your prompt change:
7579
7680Now you and `~talsur-todres` can exchange messages directly.
7781
82+ ~your-urbit:talk[~talsur-todres] Hey buddy!
83+
7884To set your audience back to `/urbit-meta`:
7985
80− ~your-urbit:talk> ;/urbit-meta
86+ ~your-urbit:talk[~talsur-todres] ;/urbit-meta
87+
88+You'll see your prompt change back:
89+
90+ ~your-urbit:talk-
91+
92+You can also use the ASCII "glyph" assigned to your `/urbit-meta` circle as a shortcut:
93+
94+ ~your-urbit:talk[~talsur-todres] ;-
95+ ~your-urbit:talk-
96+
97+(Your ship may have a different glyph than `-` for your circle)
8198
8299Use `;leave` to unsubscribe from a channel:
83100
84− ~your-urbit:talk> ;leave /urbit-meta
101+ ~your-urbit:talk- ;leave /urbit-meta
85102
86−There are two ways of using `:talk`: from the CLI or through a web ui
87−available at `http://your-urbit.urbit.org/talk` (or
88−`http://localhost:8080/talk`).
103+There are two ways of using Talk: from the CLI or through a web UI
104+available at `http://your-urbit.urbit.org/~~/talk` (or
105+`http://localhost:8080/~~/talk`).
89106
90−The web ui ships as compiled JavaScript on your Urbit, but has its own
107+The web UI ships as compiled JavaScript on your Urbit, but has its own
91108source repo [here](https://github.com/urbit/talk).
92109
93110Last, let's create a channel we can invite some friends to:
94111
95− ~your-urbit:talk> ;create channel %my-channel 'some description'
112+ ~your-urbit:talk> ;create channel %my-channel 'Some description.'
96113
97114Now you can tell your friends to `;join ~your-urbit/my-channel`.
98115
99116## Manual
100117
101−`:hall`'s design is similar in spirit to
102−[nntp](https://en.wikipedia.org/wiki/Network_News_Transfer_Protocol),
118+Hall's design is similar in spirit to
119+[NNTP](https://en.wikipedia.org/wiki/Network_News_Transfer_Protocol),
103120the underlying protocol for Usenet.
104121
105−Our design is pretty simple: `:hall` messages go to ‘circles’. Any urbit
106−can host or subscribe to any number of circles.
122+Our design is pretty simple: Hall messages are called _posts_. Posts
123+go to _circles_. Any urbit can host or subscribe to any number of circles.
107124
108125There are four kinds of circles: a write-only `%mailbox` for direct
109126messages, an invite-only `%village` for private conversation, a read-only
@@ -113,7 +130,7 @@ general use.
113130### Posts
114131
115132A post can be a variety of different data structures. Let's look at the
116−ones you can use from within `:talk`: lines, URLs, expressions and
133+ones you can use from within Talk: lines, URLs, Hoon and
117134replies.
118135
119136#### Lines
@@ -121,31 +138,32 @@ replies.
121138A line is simply a string of text. Depending on the filtering rules set
122139by the circle's host, these may or may not include uppercase and Unicode
123140characters.
141+
124142If the line starts with `@`, it's an action (IRC `/me`).
125143
126− ~your-urbit:talk> @sends a message
144+ ~your-urbit:talk> @sends a message.
127145
128146will print as
129147
130− ~your-urbit sends a message
148+ ~your-urbit sends a message.
131149
132150#### URLs
133151
134152A URL is any valid URL.
135153
136− ~your-urbit:talk> http://example.com/
154+ ~your-urbit:talk> https://example.com/
137155
138−### Expressions
156+### Hoon
139157
140−Expressions can be used to show and evaluate Hoon code. Send an expression
141−by prefacing your message with `#`.
158+You can use Talk to evaluate Hoon code and share the result with everyone in a
159+Hall circle. To do so, preface your Hoon with `#`.
142160
143− ~your-urbit:talk> #(add 1 2)
161+ ~your-urbit:talk- #(add 2 2)
144162
145163will print as
146164
147− ~your-urbit# (add 1 2)
148− 3
165+ ~your-urbit# (add 2 2)
166+ 4
149167
150168### Replies
151169
@@ -153,12 +171,12 @@ To indicate what you're saying is in direct response to a specific
153171message, select the message (see Activating Lines below) and type your
154172response.
155173
156− ~some-urbit> hello! how are you?
157− ~your-urbit:talk> ; good, thanks!
174+ ~some-urbit- Hello! How are you?
175+ ~your-urbit:talk> ; Good, thanks!
158176
159177will print as
160178
161− ~your-urbit>^ good, thanks!
179+ ~your-urbit>^ Good, thanks!
162180
163181### Activating Lines
164182
@@ -166,18 +184,18 @@ A line number identifying the *subsequent* line is displayed every 5
166184lines.
167185
168186 ---------[0]
169− ~your-urbit> this is my message
170− ~your-urbit> this is another message
171− ~your-urbit sends a message
187+ ~your-urbit- This is my message.
188+ ~your-urbit- This is another message.
189+ ~your-urbit sends a message.
172190 ~your-urbit/ http://example.com/
173− ~your-urbit# (add 1 2)
174− 3
191+ ~your-urbit# (add 2 2)
192+ 4
175193 ---------[5]
176− ~your-urbit>^ that's my message!
194+ ~your-urbit>^ That's my message!
177195
178196You can use a line number to *activate* a line:
179197
180− ~your-urbit:talk> ;5
198+ ~your-urbit:talk- ;5
181199
182200which prints the number, line identifier, timestamp, sender, audience,
183201and contents:
@@ -186,8 +204,8 @@ and contents:
186204 0v3.hl51p.jhege.amhec.vb37r.3rejr at ~2016.6.24..04.48.21..a235
187205 ~your-urbit to ~another-urbit
188206 in reply to: ~your-urbit:
189− > this is my message
190− that's my message!
207+ > This is my message.
208+ That's my message!
191209
192210If information got truncated — like happens for long URLs or expressions —
193211or if there's additional information available — as is the case with
@@ -199,40 +217,40 @@ with `;;`, and so on.
199217
200218### Creating and managing circles
201219
202−`;create [type] %name 'description'`
220+###### `;create [type] %name 'description'`
203221Creates and joins a circle, where `[type]` is any of the following:
204222- `channel`: public circle. Has a blacklist for write control.
205223- `village`: invite-only circle.
206224- `journal`: publicly readable, invite-only for writing.
207225- `mailbox`: publicly writeable, can only be read by its host.
208226
209−`;delete %name 'optional reason'`
227+###### `;delete %name 'optional reason'`
210228Deletes a circle. If a reason is specified, that gets sent to all
211229subscribers before the circle gets deleted.
212230
213−`;depict %name 'description'`
231+###### `;depict %name 'description'`
214232Changes the description of circle `%name`.
215233
216−`;filter %name [capitals] [unicode]`
234+###### `;filter %name [capitals] [unicode]`
217235Configures the message filter for circle `%name`: whether to allow
218236capital and/or unicode characters. `y`/`&`/`true` for allowed,
219237`n`/`|`/`false` for disallowed.
220238
221−`;invite %name ~someone`
239+###### `;invite %name ~someone`
222240Invite someone into your circle `%name`. If they were previously banished,
223241removes them from the blacklist.
224242Can also invite multiple ships at once, `~comma, ~separated`.
225243
226−`;banish %name ~someone`
244+###### `;banish %name ~someone`
227245Banish someone from your circle `%name`. If they were previously invited,
228246removes them from the whitelist.
229247Can also banish multiple ships at once, `~comma, ~separated`.
230248
231−`;source %name ~other/circle`
249+###### `;source %name ~other/circle`
232250Adds `~other/circle` as a source for circle `%name`. This causes all
233251messages sent to `~other/circle` to also appear in `%name`.
234252
235−`;unsource %name ~other/circle`
253+###### `;unsource %name ~other/circle`
236254Removes `~other/circle` as a source for circle `%name`.
237255
238256### Membership
@@ -240,37 +258,40 @@ Removes `~other/circle` as a source for circle `%name`.
240258If you have joined a circle, you can make this information publicly
241259available to help others find that circle as well.
242260
243−`;show ~some/circle`
261+###### `;show ~some/circle`
244262Adds a circle to your public membership list.
245263
246−`;hide ~some/circle`
264+###### `;hide ~some/circle`
247265Removes a circle from your public membership list.
248266
249267### Status
250268
251269You'll see status notifications when people enter or leave stations
252−you're subscribed to.
253270
254−`;set quiet`
271+###### `;set quiet`
255272Turn off status (and config) notifications.
256273
257−`;unset quiet`
274+###### `;unset quiet`
258275Turn on status (and config) notifications.
259276
260−`;who`
277+###### `;who`
261278List everyone in all your subscribed circles. Optionally specify a
262279specific circle to list members of just those.
263280
264−`;attend ~some/circle [presence]`
281+You'll see presence notifications when people enter or leave stations
282+you're subscribed to.
283+
284+###### `;attend ~some/circle [presence]`
265285Manually set your presence to show up as one of the following. (In the
266286future, a sufficiently advanced client can automatically set these for
267287you.)
288+
268289- `talk` - typing
269290- `hear` - listening
270291- `idle` - inactive
271292- `gone` - not present
272293
273−`;name ~some/circle 'my handle'`
294+###### `;name ~some/circle 'my handle'`
274295Set a handle ("name") for yourself in a specific circle. It will display
275296to users who have done `;set nicks`, but gets truncated if it's longer
276297than 14 characters.
@@ -280,7 +301,6 @@ than 14 characters.
280301An audience consists of one or more messaging targets. These can be
281302circles or ships. (In the latter case, it's secretly the `~ship/inbox`
282303circle.)
283−
284304### Circle glyphs
285305
286306Glyphs are assigned by circle hash out of the following list
@@ -290,10 +310,10 @@ Glyphs are assigned by circle hash out of the following list
290310Alphanumeric characters and `|#;:*~_` are reserved; all others (the
291311above list, and `\/!?({<`) can be manually assigned.
292312
293−`;bind + /urbit-test`
313+###### `;bind + /urbit-test`
294314Assigns the `+` glyph to `/urbit-test`.
295315
296−`;unbind + /urbit-test`
316+###### `;unbind + /urbit-test`
297317Unassigns the `+` glyph from `/urbit-test`.
298318
299319To see what circle is bound to a glyph:
@@ -305,8 +325,9 @@ To see what circle is bound to a glyph:
305325
306326Received posts are prefixed with a glyph to let you know what the
307327audience is. You can activate an individual post to see the full
308−audience.
309−There are a few special-purpose glyphs.
328+audience.
329+
330+There are a few special-purpose glyphs:
310331
311332- `|` - Informational messages
312333- `:` - Posts directly to you
@@ -328,20 +349,20 @@ Here we're talking directly to `~dannum-mitryl`:
328349
329350#### Configuration
330351
331−`;~urbit/station`
332−Set audience to `~urbit/station`.
352+###### `;~urbit/circle`
353+Set audience to `~urbit/circle`.
333354
334−`;=`
335−Set audience to the station bound to the `=` glyph.
355+###### `;=`
356+Set audience to the station bound to the `=` glyph
336357
337−`;~dannum-mitryl`
358+###### `;~dannum-mitryl`
338359Set audience to `~dannum-mitryl` (a direct post).
339360
340−`;%station`
341−Set audience to a station on your own ship.
361+###### `;%circle`
362+Set audience to a circle on your own ship
342363
343−`;~dannum-mitryl this is a private message`
344−Set the audience and send a post to it. This works for all of the above.
364+###### `;~dannum-mitryl this is a private message`
365+Set the audience and send a post in the same line. This works for all of the above.
345366
346367Your audience is configured with regard to the following rules (in order):
347368
@@ -351,26 +372,26 @@ Your audience is configured with regard to the following rules (in order):
351372
352373### Local nicknames
353374
354−`;nick`
375+###### `;nick`
355376List all local nicknames.
356377
357−`;nick ~some-urbit`
378+###### `;nick ~some-urbit`
358379Look up a nickname.
359380
360−`;nick plato`
381+###### `;nick plato`
361382Search in reverse.
362383
363−`;nick ~some-urbit plato`
384+###### `;nick ~some-urbit plato`
364385Create a nickname.
365−
366−`;nick ~some-urbit ~`
386+
387+###### `;nick ~some-urbit ~`
367388Clear an assigned nickname.
368389
369−`;set nicks`
390+###### `;set nicks`
370391Show nicknames instead of urbit names. If no local nickname is set, uses
371392that user's handle. If the user has no handle, just the urbit name.
372393
373−`;unset nicks`
394+###### `;unset nicks`
374395Show urbit names instead of nicknames.
375396
376397Nicknames and handles longer than 14 character will be truncated in
@@ -379,22 +400,22 @@ phonebook.
379400
380401### Miscellaneous configuration
381402
382−`;set showtime`
403+###### `;set showtime`
383404Show the timestamp for each message.
384405
385−`;unset showtime`
386−Stop showing the timestamp for each message.
406+###### `;unset showtime`
407+Stop showing the timestamp for each message.
387408
388−`;set timezone [+/-][hours]`
409+###### `;set timezone [+/-][hours]`
389410Adjust the display of the timestamps to a specific timezone. Relative to UTC.
390411
391−`;set notify`
412+###### `;set notify`
392413Emit a terminal bell sound if your six-syllable ship name is mentioned in
393414a message.
394415
395−`;unset notify`
416+###### `;unset notify`
396417Do not notify when your ship name is mentioned.
397418
398−`;set width [number]`
419+###### `;set width [number]`
399420Set the rendering width of `:talk` to a specific number of characters.
400421(Minimum of 30.)