A chat-first communication and journaling web-app, featuring:
Native/mobile app available, currently optimized for Android/Chrome. Install via the button below, or if unavailable, via the "Add to Home Screen" option under mobile Chrome/Firefox settings.
No download or installation is necessary. Complete support for Firefox and Chrome. Partial support for Safari (notifications are unavailable), and untested on other browsers.
The mobile experience is improved by installing the native/mobile app (via "Add to Home Screen"), mostly for the sake of hiding the unpredictable URL address bar. The available features should be otherwise be identical.
Messages are synced in real-time between tabs/instances of Ansyble. Settings are not all synced in real-time; a refresh may be required.
There are two versions of Ansyble. One for screens wider than about 500 pixels, and one for screens narrower than 500 pixels. The differences are limited to appearance, sound notifications, and chat window layout.
Messages are encrypted (essentially, signed) with a key (signature) before sending. In practice, the key/signature takes the form of a random character string, so it is not clear whether the signature is actually Alice's, or a server forgery. By hovering over a contact in the contact list, you can verify the signature with Alice, preferably in real life or another chat client.
In a bind, signatures can be "verbally" verified on Ansyble. However, since signatures change on (almost) every message, keep in mind that this might involve a little juggling (for instance, Alice's message requesting to compare signatures would rotate the signature before you could verify it). To help with this, your -next- signature is also provided in the hover-text.
If signatures do not match, re-adding the affected contact to your contact list resets communication keys with that contact. (This should not happen unless you have powerful enemies.)
Binary signals are not encrypted. For instance, your online status is not encrypted.
Ansyble has access to three types of data: 1) When you send messages, 2) how large those message are, and 3) who you send those messages to. In principle, you can perfectly shield your identity by 1) sending and receiving messages at exact time intervals, 2) padding messages with poetry to be of constant length, and 3) using a screen name and insisting the same of your contacts.
Personal data other than your username is never saved to disk/SSD - not even the cache. In other words, pulling the battery from your device is guaranteed to wipe all personal data involving Ansyble. The exception is if you choose to save your encryption key until log out; in this case your encryption key alone is stored to disk.
Despite what all the guiding labels say, your encryption key is not actually identical to your password. Rather, it is an irreversible function of your password. In particular, a compromised encryption key does not compromise your password. If you reuse passwords across websites (don't!), this slightly improves security.
Chat list search (as opposed to chat window search) is performed by keywords. For an exact search, use quotes:
For instance, [my search query!] returns chats containing the keywords "my", "search", and "query," stripping out punctuation. On the other hand, ["my search query!"] only returns chats containing the exact phrase "my search query!" (not case sensitive).
Search for chats with a particular contact by prepending with a tilde. For instance, [~alice] returns chats involving anyone with username, first, or last name "alice." [~me] returns your notes ("chats" that do not involve anyone else).
Search within a chat window is by exact search, not keywords (not case sensitive).
Ctrl-f in a chat window activates the chat window search. If an element of the sidebar is focused, it activates the chat list search.
"Export" exports to CSV file only chats which are colored (loaded) and visible (filtered) in the chat list. In other words, you can tailor your export by using an appropriate search query.
The export includes all of the metadata that Ansyble holds for each chat message (timestamps and recipients).
Dragging a contact from the contact list to a chat window adds the contact as a recipient (desktop browsers only). Clicking on a contact in a recipient list removes that contact as a recipient (they remain as a gray participant).
In a chat window, messages are gray if a) they are from someone absent from your current recipients for the chat (an "outsider"), or b) the message was not sent to all of your current recipients (a "whisper").
Your display color is shared with your mutual contacts and is used to color the button appearing in their contact and recipients lists.
Ansyble is as offline-capable as it can possibly be, given the above promises about portability, encryption, and evanescence. For instance, loaded chats (indicated by color in the list of chats) may be reviewed offline if still in RAM.
Messages may be queued in a chat window by sending while offline (or sending a quick burst of messages while online). Closing the chat window clears the queue. (Note the oldest item in the queue may have already sent.) The queue may be recovered within five seconds by undoing the window closure.
Click a -sent- message twice to edit it. Pressing enter sends the revision. Before sending, pressing esc restores the original message.
Ansyble groups chats separated by over 6 hours into blocks, and automatically generates a 1-3 word phrase label for each block. The label may change as either a block grows, or as more blocks are created. The labels should improve in relevance as you have more chats.
Click the pencil button to manually label a chat. There is one manual label of unlimited length per chat.
Messages with no other recipients enjoy all the other features of Ansyble. The only special treatment they receive is the use of "me" and "myself" in the chat and message identifiers.
Clicking on a message in a chat window selects it (indicated by dark highlighting). Shift-click may be used to select multiple messages, and ctrl-c copies selected messages for internal pasting (desktop browsers only). Internally pasted messages display in a "quote format," indicated by indentation and gray coloring. (System-based select/copy/paste functions similarly, but the quote-formatting is less reliable.)
There are three ways to share images:
Click the image upload icon. Uploaded images (rather, their encrypted ciphers) -are- saved on Ansyble's servers.
Clipboard images (including, for instance, printscreen or snippet captures on Windows) may be pasted into input field. Pasted images -are- saved on Ansyble's servers.
Dragging most draggable images from other webpages to a chat window immediately shares that image. The image is sourced from the original webpage, and is -not- stored on Ansyble's servers.
At the moment, Ansyble servers do not have a lot of space. Thus, image quality may be reduced before sending.
Copy a Youtube link and send it. A "Join viewing" button will appear under the embedded Youtube video. Click the button to jointly control one video player with the recipients of the link.
The video is not synced unless you click the "Join viewing" button (which "pins" it to the top of the chat window). In particular, you are free to use the inline video player without disturbing the recipients of the link.
Host video calls
(Functional, but stability is a work in progress.)
Sending [Let's have a security \meeting] will produce a "Join security meeting" button under your sent message for you and the other recipients of the message. Click to join the video conference. At most 3-4 participants is recommended.
Sending [opening a sketching \call] will produce a "Join sketching call" button. One call may be open in parallel with any other type of collaboration: Youtube viewing, video call, or mirrored sketch.
Forward slash, eg. [sketching /call], also works with any type of collaboration.
(Functional, but under development.)
As above, send [diagramming \sketch] to open a mirrored sketch button titled "Join diagramming sketch."
At the moment, mirrored sketches are real-time only. This means that only participants in the room at the same time as a particular pen stroke will see it. In particular, latecomers will not see earlier sketches.
At the moment, sketches are not saved to database, so closing a chat window will delete the sketch for you (but the sketch button will persist).
Bold contacts are logged in, but not necessarily active. There is no idle timer.
Page up/down keys always act on the chat window messages, not the input/search/recipient fields. Other navigation keys act on the chat window messages only if the focused field is empty.
Shift-enter enters a newline (without sending).