The two-panel interface
curio with no command (or curio tui) opens a two-panel file manager on the current session. Everything it writes goes through the sandbox as a typed command would: a file saved or copied into /workspace is an uncommitted change, marked in the panel, and the workspace only changes when a commit is approved.
┌ curio https://acme.curiosity.ai | admin | session: fix-search | 2 changed | live ───┐
╔╡ sandbox:/workspace/code/endpoints ╞════════╗╔╡ local:/home/me/defs ╞══════════════════════╗
║ /.. ║║ /.. ║
║M search-orders.cs 2.1K 09-29 12:04 ║║ notes.md 1.2K 09-28 17:10║
║A export-invoices.cs 812 09-29 12:10 ║║ search-orders.cs 2.0K 09-29 11:58║
╚═════════════════════════════════════════════╝╚═════════════════════════════════════════════╝
/workspace/code/endpoints$ build
1Help 2Sessions 3View 4Edit 5Copy 6Move 7Mkdir 8Delete 9Changes 10Quit
The header
The top line shows the workspace, your account, the session, and then, when they apply:
N changed: files this session changed and has not committed.commit waiting - F9: a staged commit is waiting for approval.working...: a command is running.liveorlive (sse): the live connection is up.
The panels
The left panel starts in the session's sandbox, in the directory the session last used (/workspace for a new one). The right panel starts in the folder you ran curio from. Ctrl+L switches a panel between the sandbox and this computer, and Ctrl+U swaps the two panels.
Each row is a change marker, a mark, the name, the size and the modification time. The markers are M (modified), A (added) and D (deleted) in this session. A file in a read-only mount shows (ro), and writes to it are refused by the workspace. The line under the list shows the selected file, the number of marked files, or read-only for a read-only directory.
Space, Insert or Ctrl+A mark files. F5, F6 and F8 act on the marked files, or on the selected one when nothing is marked.
Files
| Key | Action |
|---|---|
| F3 | View the file. |
| F4 | Edit the file. Save with Ctrl+S. A save is refused if the file changed since you opened it, for example because Sudo edited it in the dock. |
| F5 / F6 | Copy or move to the other panel, in either direction between the sandbox and this computer. |
| F7 | Make a directory. |
| F8 | Delete. In /workspace, a deletion is an uncommitted change like any other. |
| Alt+F7 | Find text under the current sandbox directory. |
Copying a file into /home/uploads attaches it to the session's conversation, where Sudo can read it.
The command line
Typing anywhere starts a command. It runs in the sandbox, in the active sandbox panel's directory, so the prompt shows that directory. Every sandbox command is available; help lists them. Common ones:
| Command | What it does |
|---|---|
build |
Check the session's changed definitions against the workspace. |
changes |
List what the session changed. |
commit -m "…" |
Stage the changes as a commit for approval. |
pull / revert |
Bring what someone else changed in the workspace into the files the session is editing; undo a file's change. |
graph, query, type, uid |
Look at the graph, its node types and UIDs. |
tasks |
The session's to-do list. |
Tab completes on the command line (and switches panels when the line is empty). Up and Down walk the session's command history. Esc clears the line.
Short output appears on the panel's last line. Longer output opens the console, which Ctrl+O shows and hides.
Changes: F9
F9 opens the Changes dialog: the files the session changed on the left, the diff of the selected one on the right, and these buttons:
| Button | Action |
|---|---|
| Build | Run build in the session. |
| Commit… | Stage the changes as a commit, with a message. |
| Pull | Bring what someone else changed in the workspace into the session's files. |
| Revert file | Undo the selected file's change. |
| Approve | Apply the staged commit, or open it in your browser. See Approving changes. |
| Discard | Drop the staged commit. The edits stay in the sandbox. |
Sessions: F2
F2 lists the sessions on this workspace, with Open, New…, Rename… and Delete…. Deleting a session deletes its conversation and every uncommitted change in its sandbox. See Sessions and the sandbox.
Sudo
Sudo runs across the screen when the interface opens, and after two minutes without a key he comes out to play with a ball of yarn, and naps when he is tired. Any key ends either scene; the key that wakes the screensaver does not also act on a file.
| Variable | Effect |
|---|---|
CURIO_NO_INTRO=1 |
Skip the opening run. |
CURIO_SCREENSAVER_SECONDS |
Seconds without a key before the screensaver (default 120); 0 turns it off. |
F10 or Ctrl+Q quits. The session stays, with its uncommitted changes, and you can pick it up in curio or in the admin dock.