Skip to content

Releases

v0.5.0

Choose a tag to compare

@dmazlum dmazlum released this 06 Nov 16:43
2757d26

oh-my-pi (omp)

  • Revive now brings back oh-my-pi (omp) sessions too. omp has no hooks file, so install links an extension into ~/.omp/agent/extensions/ (only when ~/.omp/agent exists; --no-omp skips it). After a reboot, a core restart or a kill the session comes back with omp … --resume <id>, and the dialog forks it with omp … --fork <id>. /exit, Ctrl+C and Ctrl+D forget the session; /new, /resume and /fork record the new one. One-shot runs (-p, --print, --no-session, --mode json|rpc|rpc-ui, --export) are not recorded. Tested with omp 18.16. (#18, thanks @Srv-02)

What a resume takes from the record

  • Flags are filtered again when they are read back from the terminal's labels, not only when they are recorded. Permission and sandbox modes still come back as they ran.
  • Flags that make the agent load code, configuration, instructions or extra folders at start are no longer carried: --settings, --mcp-config, --plugin-dir, -e/--extension, --approve-mcps, --system-prompt, --append-system-prompt(-file), --skill, --add-dir, Cursor's --workspace and the like. A session started with one of them comes back without it.
  • Config folders (CLAUDE_CONFIG_DIR, CODEX_HOME, PI_CODING_AGENT_DIR, …) are recorded by name only, never by value. A session started under one resumes by itself only when the new shell sets that variable on its own (in your rc file, say). A session started with pi's or omp's --session-dir never resumes by itself. Instead the shell prints one dim line, and the dialog shows the command to run, with a Copy command button.
  • The session's folder is used by its real path, and only when it exists, is yours and is not writable by everyone. Otherwise the session is not resumed, not even by hand.

Dialog

  • Resume is disabled for a session that can't be resumed by hand, and the card says why before you click. Fork is disabled for it too. (#23, thanks @Srv-02)

Install

  • On Linux the bash block goes into ~/.bashrc, since herdr-core starts bash there without -l (herdr-core#99). A block an earlier version put into ~/.profile or ~/.bash_profile is moved there. macOS is unchanged.

Internal

  • The pi and omp extensions share one helper (lib/extension.js). pi's extension gains what only omp's had: a failed spawn no longer breaks its queue, and its signal listeners are added once however often a session starts. (#24, thanks @Srv-02)

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive and run revive.mjs install (see Updates in the README). Run install even if you don't use omp: on Linux it moves the bash block to ~/.bashrc.

v0.4.1

Choose a tag to compare

@dmazlum dmazlum released this 04 Nov 06:50
c6ef36d

Linux

  • Revive now records sessions on systems with procps-ng 3.3 (Amazon Linux 2 and others of its age). There ps read the combined -o pid=,ppid=,lstart=,args= as a single pid column, so the process table had no parents or command lines, the session hook never found its terminal, and no revive.* labels were written; nothing came back after a reboot. ps now gets one -o per column, which prints the same thing on newer procps and on macOS. (#19, thanks @9pace)

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive (see Updates in the README).

v0.4.0

Choose a tag to compare

@dmazlum dmazlum released this 03 Nov 12:30

Factory Droid and the Cursor CLI

  • Revive now brings back Factory Droid and Cursor CLI sessions too, alongside Claude Code, Codex and pi. Each one's session hook records the session id on its terminal, and after a reboot, a core restart or a kill the agent comes back with --resume <id> and the flags it was started with. (#1, thanks @juliorr)
  • Droid: resumes with droid … --resume <id> and forks with droid … --fork <id>. Only interactive flags are carried (--auto, --settings, --use-spec, --disable-builtin-skills, --append-system-prompt(-file)); droid exec runs are not recorded.
  • Cursor: resumes with cursor-agent … --resume <id>. Cursor has no fork, so the dialog offers none for it. -f/--force, --yolo, --model, --sandbox, --mode, --plan and a few more are carried; --api-key and -H never are. /exit and Ctrl+C forget the session; a shutdown or a closed terminal keeps it. cursor-agent -p runs are not recorded.
  • A Droid or Cursor session started before the hooks were installed is still found from its session files, so the dialog shows it.

Install

  • revive.mjs install writes Droid's hooks (~/.factory/hooks.json if it exists, else ~/.factory/settings.json) only when the droid CLI is installed, and Cursor's (~/.cursor/hooks.json) only when cursor-agent is installed. A ~/.cursor folder from the Cursor IDE alone doesn't count. --no-droid and --no-cursor skip them.
  • An agent file that isn't valid JSON now skips that agent only, with a note (Skipped Droid: ~/.factory/settings.json is not valid JSON; fix it and run install again.). The file is left untouched, and the other agents and the shell block are still installed. This applies to Claude Code's settings.json too, which used to stop the whole install.
  • uninstall takes out only Revive's entries, and no longer rewrites a file that has none.

Dialog

  • The footer shows ✓ Droid hooks and ✓ Cursor hooks when those CLIs are installed. The empty card now says "No agent session in the focused terminal."

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive and run revive.mjs install (see Updates in the README). Run install even if you don't use Droid or Cursor: it adds their hooks only when their CLI is installed.

v0.3.0

Choose a tag to compare

@dmazlum dmazlum released this 02 Nov 17:01

pi

  • Revive now brings back pi sessions too, alongside Claude Code and Codex. pi has no hooks file, so the mod ships a pi extension (mods/revive/pi/revive.ts) that runs revive.mjs hook at pi's session start and end. revive.mjs install links it as ~/.pi/agent/extensions/herdr-revive.ts when ~/.pi/agent (or PI_CODING_AGENT_DIR) exists; --no-pi skips it. An extension already at that path (a copy your package manager placed, say) is left alone, and uninstall takes out only its own link. (#11, thanks @llehouerou)
  • After a reboot, a core restart or a kill, the session resumes with pi --session <id> and the flags it was started with (model, thinking, tools, extensions, …). /quit forgets it, like Claude Code. Fork uses pi --fork <id> and is enabled once the session has a message.
  • Only an interactive pi in a herdr terminal is recorded: -p, --mode json|rpc, --no-session and pi's subagents are not. A pi started before the extension was installed is recorded from its next start (or /reload).
  • pi support is experimental and community-maintained, tested with pi 1.4.

Dialog

  • The footer shows ✓ pi extension when pi is installed, and the empty card mentions pi.

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive and run revive.mjs install (see Updates in the README). Run install even if you don't use pi: it links the extension only when pi is installed.

v0.2.2

Choose a tag to compare

@dmazlum dmazlum released this 02 Nov 15:54
c85c072

Claude Code

  • Claude Code's hooks are now optional, like Codex's. revive.mjs install writes them only when ~/.claude (or CLAUDE_CONFIG_DIR) exists, so a setup without Claude Code no longer gets a ~/.claude/settings.json it doesn't use. doctor reports claude: null there, and the dialog footer stops showing a red ✕ Claude Code hooks and an Install button that never went away. If you install Claude Code after Revive, run install again. (#12, thanks @llehouerou)

Resume

  • revive.mjs resume run from inside a herdr terminal (by an agent, or by hand) now types the resume command into the target terminal. Before, hc send wrapped it as a note (<hc from="t9">…</hc>), the shell failed to parse it and nothing resumed. The dialog and the automatic resume after a reboot were not affected. (#13, thanks @llehouerou)

Docs

  • The README recommends copying the mod folder during development, not symlinking it.

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive and run revive.mjs install (see Updates in the README).

v0.2.1

Choose a tag to compare

@dmazlum dmazlum released this 01 Nov 18:59
8ef4f1b

Codex

  • revive.mjs install no longer rewrites ~/.codex/hooks.json (or Claude Code's settings.json) when Revive's hooks are already there. Other tools write that file too; after one of them reformatted it, install said "Updated" and that Codex would ask to trust the hooks again, although nothing had changed. (#9)
  • Codex's SessionEnd hook gets a 3 second timeout. Codex clamps it to 3 and warned about it at every start. Run install once to apply it. (#9)
  • A running Codex that Revive has no record of now shows in the dialog's focused card, with its folder and why it can't be forked or brought back, instead of No Claude Code or Codex session. Codex's shared background server runs its hooks, so a session it runs is never recorded; the README's Limits say how to run Codex without it. (#9)

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive and run revive.mjs install (see Updates in the README).

v0.2.0

Choose a tag to compare

@dmazlum dmazlum released this 01 Nov 18:34
becc7c6

Fork

  • A Claude Code session that never got a message can't be forked. Before, Fork opened a pane that only said "No conversation found". Now the Fork buttons are disabled and the card says the session has no message yet. They come back within a few seconds of its first message. (#5, #7)
  • When Revive can't tell which config folder a session uses (CLAUDE_CONFIG_DIR), Fork stays open rather than being blocked. (#7)

Dialog

  • New look, closer to the README preview: the dialog is as tall as its content, folders show the home folder as ~, Running is green and Lost to a restart / Interrupted are yellow, the focused card has a border, and the rows have more room. (#6)
  • On a short window the dialog stops at 85% of its height and the session list scrolls, so the footer and Install always show. (#7)

keys.json is unchanged. To update, replace ~/.config/herdr-app/mods/revive with the new mods/revive and run revive.mjs install (see Updates in the README).

v0.1.0

Choose a tag to compare

@dmazlum dmazlum released this 01 Nov 15:17
c8714da

First release. Bring back the coding agent a Herdr terminal lost to a restart or reboot, and fork a live session beside it.

From here on each release lists what changed and whether keys.json did. The version you have is "version" in the installed mod.json; see Updates in the README for how to update.