Repository navigation
Releases: YuvalSarel1/cones
Releases · YuvalSarel1/cones
Release list
cones 0.4.5
Dashboard
ctrl+eunfolds a session's details under its row; left no longer does, so a stray press stays harmless. On a job,ctrl+estill edits it.- The title column fits the rows listed now, so short titles no longer end in an ellipsis beside empty space after a long one leaves.
- Control shortcuts work on a Hebrew keyboard layout, read as the Latin keys under them.
Sessions
- Removing a Codex thread that runs in a cones terminal forgets it, from the dashboard and from
cones rm. Before, its row came back after a restart and stayed hidden after the thread was resumed. - A session launched by another agent and listed beneath it no longer leaves its own folder behind as an empty row once it ends.
cones 0.4.4
Session list
- A session an agent starts with
cones launchis listed beneath that agent, marked↳ ⚙, even when it works in another folder. A launch in another folder shows that folder, dimmed, after its title (· in reports). Setlaunched_under_parent: falseto keep each launch in its own folder. - The unread mark on a fork or launch row sits in its indentation, so the row stays aligned under its parent.
Messages between agents
- A note from a Codex thread names that thread. It used to arrive as "another agent, not the owner".
- A Claude session receiving a note shows the real sender, such as "Message from @codex-01a1621a", in place of a generic Claude heading.
State
- Forks and launches share
STATE_DIR/relations.json. An existingforks.jsonis read until cones first writes the new file.
cones 0.4.3
Composer
- A backslash before enter inserts a line break instead of starting the prompt, as in Claude Code. Useful where the terminal never reports shift+enter.
cones 0.4.2
cones skill
- An agent asked about "your forked agent" now looks in cones: the skill triggers on forks, says native agent lists such as ListAgents show only Claude peers, and gives the commands that find a fork on any harness, finished ones included, and print what the owner asked it.
- A self-contained task the owner reviews is launched and left alone: no report request and no
cones wait. Waiting and report-back are for work the launcher integrates.
cones 0.4.1
Session list
- Runs that are still going, still supervised or not yet read sit in their folder among the sessions, titled
◆ JOB, and+ add folderends the list. The jobs view keeps the full run table. ctrl+xon a run, andcones rm RUN, remove its session the way a session row is removed, soclaude agentsdrops it too.- A Claude turn that ends with a background shell still running shows as its own
shellstate: a blue ❯ row, ashellcount in the summary and a group between working and idle. It is marked unread like any finished turn. - The header summary counts only agents.
Titles
- Claude titles a session from its first message, then names a background job a second time and writes that short lowercase label over the title. cones now keeps the generated title. The new
original_titlessetting, on by default, turns this off. A name given with/renameorcones renameshows either way.
History search
- Meaning search embeds the query as typed and keeps matches down to 0.4 similarity, and word search matches passages holding two of the query's words, so far more right answers show up.
search --when recent|month|oldranks hits from that window higher without dropping others.show --at OFFSETopens the messages around a hit. MCP takes the same parameters.
Codex
- A plain
codexconnected to a daemon no longer gets a row of its own; it stays visible until its thread has a rollout. - A running Codex client costs one
psfor the dashboard's lifetime instead of one per refresh.
Fixes
- Quitting in Ghostty 1.3 leaves the shell prompt at column 0 instead of a
%partial-line mark.
cones 0.4.0
cones is now a control plane. The dashboard, your agents and scheduled jobs all reach every session on the Mac through the same verbs, and each verb acts through the harness's own commands. Which verb reaches which harness is in the capability matrix.
Control commands
| Command | What it does |
|---|---|
cones resume ID |
Reopen a conversation from history in a cones terminal |
cones fork ID |
Fork a conversation and record its parent |
cones send ID TEXT |
Deliver one note to a live session in any folder |
cones wait ID... |
Block until a named session's turn ends, it asks for input or it stops |
cones rename ID NAME |
Rename a session the way its harness's own rename does |
cones btw ID QUESTION |
Ask a side question in a read-only fork that keeps nothing |
cones compact ID |
Compact a session through its harness's own compaction |
cones stop ID / cones rm ID |
Stop a session, or stop it and take it off the harness's list |
cones mcpserves every one of them as a tool beside search and show, so an agent that speaks MCP gets the same control.rmstops first and removes nothing when the stop fails. A harness with no list of its own is only stopped, and the output says so.ls --jsonshows a job's session as a session row carrying its run.
Harnesses
- Jobs can run on Codex as daemon threads. They need
codex_full_access: true, since Codex runs unattended only with the flag that also lifts its sandbox. - Copilot and Cursor Agent conversations resume by their native id.
- Codex forks work from the CLI as well as the dashboard. The daemon makes the fork and names it.
- Codex resume and fork from history no longer exit at once when skip-permissions is on, which is the default. A remote Codex client refuses the skip flag, so a resumed thread keeps the settings it was started with, and a fork gets the setting through the daemon.
Dashboard
- A session started outside the dashboard no longer takes the cursor.
Install
brew tap YuvalSarel1/cones https://github.com/YuvalSarel1/cones
brew trust YuvalSarel1/cones
brew install cones
or cargo install --git https://github.com/YuvalSarel1/cones --tag v0.4.0.
v0.3.21
Launching workers
cones launch --waitkeeps running after it prints the id, until the worker's turn ends, it asks for input, fails, stops or leaves, then prints the id and state. Run it as a background task and its exit wakes the launcher.--timeoutexits 2 and leaves the session running.cones comms sendreaches any live session by exact id, so a worker can report straight into its launcher's conversation. A note from a session cones can place tells the recipient to answer the same way.- The cones skill now covers running your own workers, including how they report back. The separate dispatch skill is gone.
- A first launch into a new folder no longer stops at Claude's or Codex's trust question: cones records the folder as trusted the way accepting the dialog does. If it can't, the pane still asks.
Dashboard
- Stop, delete, viewer and install failures show on the composer rule instead of the dim hint row, so a refusal like
claude rmkeeping a worktree with unpushed commits is seen. - A wheel report split across two reads no longer leaks into a pane or the input when the dashboard is busy.
Cost
- Claude replies that Claude Code 2.1.278 wrote with zeroed counters and the real counts under
usage.iterationsare priced, so those sessions read complete (#5).
Install
brew tap YuvalSarel1/cones https://github.com/YuvalSarel1/cones
brew trust YuvalSarel1/cones
brew install cones
or cargo install --git https://github.com/YuvalSarel1/cones --tag v0.3.21.
v0.3.20
Dashboard
- File paths in a pane open. Claude Code prints paths as plain text; a word that names an existing file or folder is now drawn as a link,
:linesuffix included, so cmd+click (or your terminal's link click) opens it. - cones reports the selected row's folder to the terminal (OSC 7), so a terminal that opens relative paths from its working directory, like Ghostty, opens them from the session's folder. Ghostty needs shift added to the link click while cones reads the mouse.
- Unfolded session details are grouped under headings (agent, usage, time, process, source, reply), line up across groups and pick the width that prints the fewest lines.
- Any movement key folds the details first;
←still toggles them. - The list moves one row per wheel report.
CLI
cones rename ID NAMEdoes what the dashboard'sctrl+ndoes, on every harness that keeps a name: Claude, Codex, pi and OpenCode. Terminal-only harnesses are refused.ctrl+nnow also renames pi and OpenCode sessions.cones launch --namenames Codex and OpenCode sessions too.- A name set on a running Claude session sticks instead of being replaced by the agent name on the next turn.
Install
brew tap YuvalSarel1/cones https://github.com/YuvalSarel1/cones
brew trust YuvalSarel1/cones
brew install cones
or cargo install --git https://github.com/YuvalSarel1/cones --tag v0.3.20.
v0.3.19
Dashboard
←on a session row, with an empty composer, unfolds every column value plus its id, pid, start time, transcript and fork parent under the row.←again folds them.- Links in a pane open. Claude Code prints URLs and file paths as OSC 8 links; cones now passes them to your terminal, so cmd+click (or your terminal's link click) opens them.
- A trackpad flick no longer lags. A flood of wheel reports is handled in a few frames instead of one frame per report.
- A wheel report split across reads no longer fills the new-agent input with
[<65;x;yMand flickers the list footer.
CLI
cones rm <target>does what the dashboard's confirmedctrl+xdoes. The target is a job name, an open folder's path, or a run or session id. Running runs and jobs are stopped and hidden, other sessions get the verified signal, cones terminals are stopped, and folders are closed.
Install
brew tap YuvalSarel1/cones https://github.com/YuvalSarel1/cones
brew trust YuvalSarel1/cones
brew install cones
or cargo install --git https://github.com/YuvalSarel1/cones --tag v0.3.19.
v0.3.18
Cost
- Claude replies served by the Anthropic API are priced again. Claude Code writes its prompt cache with a one-hour lifetime, and cones left those replies unpriced (
-,unsupported_cache_retention) because models.dev has no rate for one-hour cache writes. They are now charged at twice the model's input rate, Anthropic's published price. pi replies that reportcacheWrite1hare priced the same way.
Tests
- The split mouse wheel report test no longer fails on a loaded CI runner.
Install
brew tap YuvalSarel1/cones https://github.com/YuvalSarel1/cones
brew trust YuvalSarel1/cones
brew install cones
or cargo install --git https://github.com/YuvalSarel1/cones --tag v0.3.18.