Skip to content

Greed 0.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 16:22
· 200 commits to main since this release
141fbc0

Highlights

A Markdown page working out a budget: fields, formulas, a table's worked-out columns and a bar chart

  • 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