Repository navigation
Releases: rness-dev/rness
Release list
v0.22.2
rness addtakes a repository name in any case, ascreatedoes:rness add dAppdeclaresdappinrness.jsonand clones intoorg/dapp; the URL keeps the spelling typed.create --reposfollows, andadd --scopes apps/Webdeclares scopeweb.- A clone whose directory differs from its name only by case (
org/dAppfordapp) is renamedorg/dappbyrness add, once its origin is checked: the confirmation says so, and--yesconsents to it. A path in another case is the same on macOS and Windows but not on Linux, so a teammate's clone would not match. Two such directories are refused, named. rness addadopts a clone whose origin differs from the URL only by case or by transport (an HTTPS clone, an SSH URL inrness.json). Another repository is still refused.rness syncnames each directory underorg/it does not read on anot read:line, instead of skipping it silently; fororg/dAppthe line points atrness add dapp, which renames it. A declared repository whose directory differs only by case is not cloned a second time and gets no block until renamed.--scopetakes a scope name in any case:rness context,rness sync, andrness_contextover MCP.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.22.2 # an existing one, from .rness/v0.22.1
- Nothing rness writes carries an em dash (U+2014) any more: the
AGENTS.mdblock, the titlerness doc newopens (# NNNN - Title), therness:adr,rness:specandrness:planskills, the scaffold, the titles of a board's issues (NNNN - Title, renamed once at the nextrness board push), and the messages of the CLI and of the mod: " - ", a comma or a colon take its place. A title written with the old separator still reads. The repository's lint refuses a new one in a string of the CLI or the mod.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.22.1 # an existing one, from .rness/v0.22.0
- One word for the view, whatever the provider (spec 0033, see "Boards"):
rness board pushreplacesrness pulse sync,rness notereplacesrness pulse note, and the hooks startrness board run.rness.jsonnames its boardsboards;projectsand the olderpulsestill read, andrness sync(whichrness upgraderuns) renames the key.pulsestays the name of the board rness ships, Agent Pulse. - A board comes to exist by its declaration and a push: there is no
create. A board ofboardswithout anumber, or a preset by name ("pulse": "agent-pulse","marketing": "collection"), is created byrness board pushonce asked (-yoff a terminal), its number then written intorness.json. rness pulse …still runs, hidden, as its new command, and says so on stderr; it goes in a later minor.rness pulse mark, kept through 0.21.x for 0.20's hooks, now exits 0 and does nothing. Spec 0031'sejectis not built and will not be: every board is written whole.- The session-start notice is
rness: board not updated — …, its recordboard.json(one 0.21 left inpulse.jsonis said once), and messages name boards:boards need a GitHub login: run rness login. - Upgrade with
npx @rness/cli@latest upgrade, which runs the new copy throughout: a 0.21 copy cannot readboards(unknown key "boards"). - For the package's API:
Manifest.projectsisManifest.boards(Boards, a record ofBoardEntry: a number, a preset's name, or aBoardDeclaration, whosenumberis null until the board is created).
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.22.0 # an existing one, from .rness/v0.21.0
- The agent journal (spec 0030, see "Pulse"): a board declares
journalatsession-startandjournal-summaryatsession-end. The agent posts notes on the plan it implements —rness pulse note, orrness_noteofrness mcp— to the plan's issue in.rness, or to an implementation issue in the repository it works in, a sub-issue of the plan's, which the pull request closes. The session's end posts a summary: its commits, its pull request, its duration. The presetagent-pulsedeclares neither: nothing changes until a board does. - Boards are declared in
rness.json(spec 0031, see "Pulse"): each one's collections, statuses, colours, fields, labels and views, written whole. Agent Pulse is the presetagent-pulse, no longer a special case of the code.pulse createwrites the board it makes;rness sync(whichrness upgraderuns) writes a board declared by its number whole, moves a collection's README declarations into its board, and merges a newer revision of a preset value by value. Views are updated in place where GitHub allows; a view rness made and no longer declared is deleted, the team's are said once. Nothing changes on GitHub for a board 0.20 made. For the package's API:ProjectsisRecord<string, number | BoardDeclaration>;BoardDeclarationandparseBoardare exported. - A board's
readmeandupdatesstay within.rness/: a path out of it, or a link leading out, is refused before anything is read. - What a session does to a board is declared in its
hooks(spec 0032):mark-in-progress,markandclear-marks, from a fixed catalogue; a hook never runs a commandrness.jsonnames. The presetagent-pulsedeclares today's three, so nothing changes on GitHub. The hooks startrness pulse run <event>;rness pulse markstays, hidden, through 0.21.x, for sessions started before an upgrade. upgraderun by a workspace's pinned copy installed with pnpm no longer ends onmod directory not found next to the @rness/cli package. After its commit it lists the files to commit in the clones, and that list read the plugin's mod from the folder of the copy running it, which the install had just removed. The list now takes the paths alone. The upgrade itself was complete: 0.20.0 to 0.20.1 printed the error after its commit. An upgrade from 0.20.1 still prints it, since the copy that runs it is the old one;pnpm dlx @rness/cli upgraderuns the new one.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.21.0 # an existing one, from .rness/v0.20.1
- The workspace's line in Claude Code moves from the pinned status line to the prompt footer, among the session modes, dim and without a sign:
rness · web · 1 in progress,⚠ <n>at its end when notes need action. Claude Code draws every pinned line a plugin sets after a⚠in its warning colour, the wrong sign for a line that informs.rness status --json'sstatusLinecarries the leadingrnessagain. VS Code and mobile surfaces, which draw no session modes, show no line; the/rness:statuspane stays. - The mod no longer installs the pin from inside Claude Code. It ran
status --jsonwith catch-up on, so in a workspace whose pin drifts each refresh rannpm installin.rness, without asking, and replaced a local copy. It now runs withRNESS_NO_DELEGATE=1: the drift is a note in the band, as the settings hooks report it.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.20.1 # an existing one, from .rness/v0.20.0
/rness:statusin Claude Code: each row's status in Agent Pulse's colour; ↑/↓ select a row, Tab and Shift+Tab change the tab; Enter, or a click, on a row shows the document in the pane andqbrings the list back; Agent Pulse is a link — the board from the list, the document's item from the document.rness status --jsonprints each row'scolorandlink, and the board aspulse.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.20.0 # an existing one, from .rness/v0.19.0
- The Claude Code plugin gains a mod (see "The mod"): the notes to act on above the prompt, a status line entry, and
/rness:statusas a pane beside the conversation, with no model turn, driven by the keyboard.syncwrites three more files into.claude/skills/rness/, at the root and in each clone; an upgrade lists the clone's for commit. Claude Code without mods ignores them; older than 2.1.280, it is told once per version, in the session-start line, to runclaude update(when it setsAI_AGENT, as 2.1.240 does). - A fourth hook,
PreToolUseonEdit|Write: an edit of the block of anAGENTS.mdorCLAUDE.md, or of the plugin's files, is refused before it is written, naming the file to edit instead; so is an edit that would add a problem to a document of.rness/or torness.json. Until the upgrade has run on a machine, a session there runs the old pinned copy, which saysunknown hook event "pre-tool-use"and lets the edit through. rness status --jsonprints the tabs and what the mod draws.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.19.0 # an existing one, from .rness/v0.18.1
rness validateand the edit hook name a document ofadr/,specs/orplans/whose file name has no number, with the next one:plans/2026-10-02-x.md: not numbered; name it 0002-<slug>.md, the next number of plans. A plan another agent's skill wrote with a dated name is the usual case; rename it, or let the agent do it when the hook tells it. A workspace with such a file failsvalidate(and its CI) after the upgrade until it is renamed. The scaffold'sCONVENTIONS.mdstates the rule, andupgrademerges it in.- A dated file name is no longer read as a number:
rness doc newafter2026-10-02-x.mdgave2027, and two dated plans of one year were reported as one number twice. rness doc newracing another one at the same number says<file> exists; nothing written(exit 1) instead of a rawEEXIST.1 repository, not1 repositories, increateandsync.- When the SSH test passes only by asking for the key's passphrase,
create,addandsyncsay once how to load it into an agent (ssh-add), since every clone would ask again. - Ctrl+C while
createwaits for an organization's approval is a cancel in the plain look too:cancelled, nothing written, exit 0 (it was 130).
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.18.1 # an existing one, from .rness/v0.18.0
- The published CLI runs on Node 22.17 or later (ADR 0010); the guard compares major and minor. A workspace pinned to 0.17.x keeps refusing Node 22 until its pin moves: from inside it,
npx @rness/cli@latest upgradeworks under Node 22, sinceupgradeis served by the copy invoked, never the pinned one. rness createasks where the organization lives first — the blank workspace is that question's last answer — then offers the login, which now lists the organizations you belong to that have approved rness (your account last, thenan organization not listed here…for the rest). Right after the organization and before anything reads it, an organization that restricts OAuth apps and has not approved "Rness" gets its approval page opened in your browser; the wizard waits for the owner's click (10 minutes at most) and then lists the private repositories too. See "GitHub login"./rness:adr,/rness:specand/rness:planread their first word as the verb:create,open(a bare number), and for a planfrom <spec>— which approves the specification it plans — andcheck NNNN, the proofs of a plan, in place of/rness:done./rness:doneis retired:rness syncremoves itsSKILL.mdwhere an earlier release wrote it (removedin its output); commit the deletion in each repository, asupgrade's next steps list. Note:/rness:plan 0028now opens plan 0028; a plan is made withfrom <spec>. See "Agent targets".rness doc new <collection> [--title <text>]writes the next numbered document ofadr,specsorplansand prints its path: the skills allocate with it instead of counting.rness validateand the edit hook refuse two documents with one number in a collection.- The day of a release,
pnpm create rnessruns the previous version: pnpm ≥ 11 holds back a package younger than 24 hours (minimumReleaseAge).rness upgradeinstalls the latest all the same.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.18.0 # an existing one, from .rness/v0.17.3
homepageof@rness/cli,create-rnessand@rness/createishttps://rness.dev;repositoryandbugsstay on GitHub. That is how a scanner tells an official package from a fork;pnpm check:versionschecks it with the versions..claude/skills/rness/.claude-plugin/plugin.json, written by the Claude target, carries the agent-plugins.org$schema, the author, homepage, repository, licence and keywords.rness syncrewrites it once in each repository; commit it there.skills/rness/SKILL.mdat the root of the repository: when to use Rness and how to install and run it, fornpx skills add rness-dev/rnessand skills.sh.
Full changelog: https://github.com/rness-dev/rness/blob/main/packages/cli/README.md
npm create rness # a new workspace
pnpm rness upgrade 0.17.3 # an existing one, from .rness/