You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Live Markdown: fields, {{ formulas }}, worked-out table columns and charts under tables, recomputed as you type. Data blocks read tables live from CSV, SQLite and PostgreSQL.
Agents across machines: one session follows the others and the hubs on machines you reached with greed ssh. space space lists every session and agent, and you can answer or stop an agent from anywhere, Claude Code's questions included.
Auto mode for agents: commands that only look, build or test run by themselves, and a decision model you pick judges the rest or asks you. :decision-check tries a model before you rely on it.
Untrusted projects run none of their own code until you trust them: config, language servers that run the project's code, and formatting on save. Greed asks once.
core.ui, a way for plugins to draw interfaces as text: lists, grids, inputs and buttons. The picker, completion and the command line use it.
Some 330 more languages from Helix's list, Terraform, OpenTofu and HCL among them.
In the window, views scroll smoothly, buttons light up under the mouse and input methods compose at the cursor. :s///c asks about each match.
Install on macOS and Linux with Homebrew: brew install johnae/greed/greed, or brew install --cask johnae/greed/greed-app for Greed.app.
New
languages: Terraform, OpenTofu and HCL: HCL's grammar downloaded with Helix's queries, terraform-ls or tofu-ls
languages: some 330 more languages from Helix's list: files, comments, indent and language servers
sessions: space B goes back to the session you were in, on whichever machine, and home comes back from another machine
agent: agent-max-tokens stops Greed's own agent once a session has read and written that many tokens
agent: a status tool, greed ctl status: what needs you and the agents at work, with a schema version
terminal: agents in terminals say through their hooks when they work, wait for you or idle; greed ctl KEY=@- reads stdin
agent: Greed's own sessions fork too, going on from what was said with the same model and tool groups
agent: agents in workspaces of their own hear when another changes the same files
core: objects.changed nudges whoever follows an object to look again now; terminals keep their agent's state per source, trusted or not, reconciled when the program ends
agent: the Claude Code Greed starts tells Greed through its hooks when it works or waits, with nothing to set up; the status line counts agents in terminals too
agent: agents running in terminals show in the session list, where enter goes to their terminal and x closes it
ssh: greed ssh notices a dropped connection, through a heartbeat both ends keep, and comes back to the same session by itself
cli: greed ls says how each session's agents are doing, asking it as an ordinary client; greed.session.status
agent: greed ctl watch follows a session's status: all of it at once, again on each change and every 15 seconds
hub: one session on the machine follows the others, so each says what waits elsewhere (space i A goes there)
agent: the status says which machine it's on, by an id made once, for hubs to tell machines apart
hub: the hub tells each machine once when an agent anywhere waits for you
hub: hubs follow other machines' hubs over ssh, so you see and hear of agents there
hub: follow the machines you reached with greed ssh lately, no config needed
hub: a session over greed ssh shows what's on your machine, asked through your client
picker: space space lists your sessions and agents on every machine, from plugins' places
agent: answer or stop an agent from anywhere: its actions in space space, here or on other machines
agent: Claude Code's questions wait in Greed while you're elsewhere, answered from anywhere
agent: questions Greed's agent asks are answered from anywhere; greed ctl acting as you asks an agent every time
agent: Claude Code's multiple-choice questions are asked on a page while you're elsewhere
blocks: what runs by itself runs only as you last let it; changes from outside wait
core: formulas, Luau's expressions worked out without running code
markdown: live values, {{ formulas }}, lets and fields, worked out as you edit
markdown: formula columns in tables, worked out row by row
blocks: command buttons in Markdown, values quoted as one argument each
chart: charts under Markdown tables, drawn again as the table changes
chart: charts under tables drawn as vectors where the client can
blocks: code blocks get the page's values, fields, lets and tables
markdown: edit tables as drawn from normal mode
markdown: markup opens as written when the cursor steps inside
markdown: a hidden part says when it shows, and opens with the cursor on it
notes: a todo can have several reminders, each going off on its own
core: tables of data in one shape, and the sources they come from
data: data blocks in Markdown, tables read live from csv, sqlite and psql
chart: a chart line under a data block charts the table it read
core: core.ui, interfaces drawn as text and marks from a view's state
data: a data block's table opens in a float as text; tables drawn by core.ui
core: core.ui grids, values under the cursor, items kept as lines move, button rows
data: data SOURCE in the shell, so boards and shell blocks read databases
core: core.ui keyed parts drawn again only when they change, and soon for bursts
gui: scrolled views glide to their place, unless gui-smooth-scroll is off
core: core.ui inputs under a view, marks of a span's own, and its namespace and width
core: core.ui finds lines by value, picks out fuzzy matches, and mounts before it draws
core: a core.ui view can draw under an input line, as a picker's list under its query
core: a core.ui view over an input can have no lines, leaving only the input
acp: images sent while the agent works go with the message, to Greed's agent at its next step
core: a core.ui list marks its current row; picker, completion and the command line use it
core: value_at gives the value of the span at a position
gui: hover lights up buttons, fields and choices; input methods compose at the cursor
core: risk.safe tells command lines that only look, build or test
acp: auto mode answers agents' questions where it safely can
acp: auto mode's decision model judges commands by what you asked, risky ones too
models: decide asks yes-or-no questions of a System One decision model or any chat model
acp: auto mode asks the decision model how likely a command is harmful and asked for
acp: up and down bring back what you sent; auto or manual shown in colour and remembered
acp: auto mode asks whether a command is safe and asked for, as clef-flash answers best
acp: :decision-check tries the decision model on commands it should and shouldn't let run
core: greed.fs.dirs gives the system's folder for temporary files
acp: auto mode judges scratch files in /tmp, tells ACP agents why, and stops after twenty blocks
core: language servers start only in folders Luau trusts, held back until then
core: an untrusted project runs none of its own code until you trust it, asked once
cmdline: :s///c asks about each match, vim's y/n/a/l/q
core: greed.fs takes relative paths from the shown project's root
site: recordings get the room on wide screens and open larger on a click
Fixed
ssh: greed ssh relays an agent that answers, falling back to IdentityAgent, and says on the status line why one doesn't
ssh: a session puts its own greed on its programs' PATH when none is there, so greed FILE works on machines greed ssh set up
hub: ask a client attaching from elsewhere about its machine at once
agent: a tool call without its path tells the model; a crash ends the turn instead of hanging it
agent: an answer a question doesn't offer is ignored, not taken as a no
hub: the status line counts agents from what the hub heard, not by listing sessions each frame
markdown: a table's last row no longer drawn in the border's dim style
markdown: a command button's values are left for its command
blocks: a command button's output shows in a float as it runs
markdown: fill out table rows typed short of cells
chart: a Markdown chart's comment line stays in sight above it
blocks: command buttons run in sh, the same for anyone
shell: values in lines for your shell are quoted for it, nu and fish too
acp: a long command in the box's bottom line is cut to fit, its time still shown
acp: an image sent while the agent works says it goes with the next message
gui: only a view that scrolled glides, never rows moved by its text or a pane with fixed parts or pictures
board: i, a, c and o open a card's file in typing mode too
acp: typing in the box keeps the status animated rather than drawing it still for a moment
core: a cursor kept by core.ui lands on a whole character
board: updates drawn together, charts run again once a resize settles
models: decide reads the provider's key as models, whoever asks
acp: the decision model sees your newest message apart, and a new one asks it again
acp: auto mode asks the decision model one plain question, whether a command is safe to run
core: servers that only read files start untrusted, and tests trust every project
core: a key other than y or n at the trust question does what it would have
markdown: a search into a table, or typing that changed nothing, leaves it as written
Faster
keys are drawn before background work; slow status line pieces move aside
delta: rows a scrolled view still shows move on the client and aren't sent again
markdown: an edit reads only the lines it changed, and questions and charts look only where they can be
core: a view resizing is drawn once per burst, parts that wrap kept as they are
acp: folded thoughts are the same at any width, so a resize edits only the box
Documentation
agents and models beyond Claude: any MCP client, ACP agents and Greed's own with any provider; setup adds Greed to every agent installed
site: a text environment for you and your agents
decision models are a judgment call; test yours before relying on auto mode
a changelog from the commits with highlights, shown on the release page
a guide to building interfaces with core.ui, auto mode setup, Homebrew, and what 0.2.0 left out
site: live Markdown on the front page, Homebrew, demos that trust their projects