7Let’s get started using the `:chat-cli` application, also known more simply as
8_Chat_. It's the simplest way to talk to people using the command line
13The most common use for `:chat-cli` right now is, of course, communicating in group chats.
17In `:chat-cli`, any kind of medium for a message is called a _chat_. There are four "types" of chats, but for now we'll be dealing with the _channel_, a publicly accessible chatroom for general use. We'll discuss the other three kinds in the [chat management](#chat-management) section later on.
19Join the Urbit Community from Dojo using `:group-view &group-view-action [%join [~bitbet-bolbel %urbit-community] ~bitbet-bolbel]`. Once you've joined, join the General chat from chat-cli. Use `ctrl-x` to switch from the Dojo prompt to the Chat prompt.
24~sampel-palnet:chat-cli/ ;join ~darrux-landes/general
27Now that you're in, try post a line to `~darrux-landes/general`:
30~sampel-palnet:chat-cli= Hello, world!
33You'll see your message printed below messages from others that came before it. You can always type `;chats` in the `chat-cli` prompt to list all the chats you're in:
36~sampel-palnet:chat-cli= ;chats
40Glyphs will be automatically assigned to channels, but have the option of binding a glyph (single non-alphanumeric character) to the channel you're joining; the syntax is in the form of `;join ~/~dopzod/books +`. The chosen glyph will be the symbol that ends your prompt, and it will be what you use as a shortcut to switch to this channel.
43~sampel-palnet:chat-cli= ;+
44~sampel-palnet:chat-cli+
47Use `;leave` to unsubscribe from a channel:
50~sampel-palnet:chat-cli= ;leave ~darrux-landes/general
53Now, let's create a channel we can invite some friends to:
56~sampel-palnet:chat-cli= ;create channel /my-channel
59Now you can tell your friends to `;join ~your-urbit/my-channel`.
61In order to see messages in `:chat-cli` you may need to do the following in Dojo:
66 ### Creating and managing chats {#chat-management}
68As mentioned before, any urbit can host any number of chats. Existing chats can be deleted or modified with various commands. All commands in this section should be sent from the `chat-cli>` prompt.
72Syntax: `;create [type] /name +`, where `+` represents an optional glyph.
74Creates and joins a chat, where `[type]` is any of the following:
75- `channel`: public chat. Has a blacklist for write control.
76- `village`: invite-only chat.
77- `journal`: publicly readable, invite-only for writing.
78- `mailbox`: publicly writeable, invite-only for reading.
80Let's create an example mailbox:
83~sampel-palnet:chat-cli> ;create mailbox /coolbox ^
88Syntax: `;delete /name`
92#### Permission management
94You can permit and ban people from reading and/or writing to the chats you host, using `;invite` and `;banish` command respectively.
96Syntax: `;invite [rw] /name ~ships`
98Where `rw` is either `r`, `w`, or `rw`, representing "read" and "write" permissions.
99And where `~ships` is a comma-seperated list of ships to invite.
101For example, to grant two people full access to a `village` we created:
104~sampel-palnet:chat-cli> ;invite rw /hidden-village ~ravmel-ropdyl, ~rapfyr-diglyt
107Similarly, if we later want to revoke the writing permissions for one of them, but still allow them to read new messages, we can run:
110~sampel-palnet:chat-cli> ;banish w /hidden-village ~rapfyr-diglyt
115Glyphs are found at the end of your prompt, as a quick indicator of where
116your messages will be sent.
118Glyphs are assigned by chat hash out of the following list:
121! @ # $ % ^ & ( ) - = _ + [ ] { } ; ' \ : " , . < > ?
124Alphanumeric characters and `|#/*~` are reserved; all others can be manually assigned.
126For example, `-` the glyph at the end of the prompt below might indicates that
127messages sent from this prompt will go to some chat with that glyph:
130~sampel-palnet:chat-cli-
133To see what chat is bound to a glyph, use the `;what` command followed by the
134glyph in question, or use `;what` without specifying a glyph to see all of your
135subscriptions which are bound to glyphs. For example, to see `=`:
138~sampel-palnet:chat-cli> ;what =
142To see all of your glyph bindings:
145~sampel-palnet:chat-cli> ;what
146> ~paldev/numismatic-forum
151When the messaging target doesn't have a glyph, we see their name at the end of
152the prompt instead. Here we're talking into `~dannum-mitryl/homework`:
155~sampel-palnet:chat-cli[~dannum-mitryl/homework]
160Syntax: `;bind [glyph] ~host/chat-name`
162Assigns the chosen glyph to a chat.
167~sampel-palnet:chat-cli> ;bind + ~dopzod/urbit-help
172Syntax: `;unbind [glyph] ~host/chat-name`
174Unassigns the chosen glyph from a chat owned by your ship.
179~sampel-palnet:chat-cli> ;unbind + ~dopzod/urbit-help
182If you don't specify a chat, all bindings for that glyph are removed.
186Received posts are prefixed with a glyph to let you know what the
187audience is. You can activate an individual post to see the full
190There are a few special-purpose "glyphs":
192- `|` - Informational messages
193- `*` - Posts to a target you don't have a glyph binding for
202Set audience to `~ship/chat`.
204#### Set audience by glyph
208Set audience to the chat previously bound to the chosen glyph.
210#### Set audience to own chat
214Set audience to a chat on your own ship.
216### Miscellaneous configuration
220Syntax: `;set timezone [+/-][hours]`
222Adjust the display of timestamps to a specific timezone. Relative to UTC.
226Syntax: `;set width [number]`
228Set the rendering width of `:chat-cli` to a specific number of characters.
233Syntax: `;set showtime`
235Show the timestamp for each message. This is set by default.
239Syntax: `;unset showtime`
241Stop showing the timestamp for each message.
243#### Sound notification on
247Emit a terminal bell sound if your six-syllable ship name is mentioned in
248a message. This is set by default.
250#### Sound notification off
252Syntax `;unset notify`
254Do not notify when your ship name is mentioned.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list