From 2eeea9a0cd8665bbe0e6c80f08603425498757e5 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sun, 21 Jun 2026 17:24:17 +0300 Subject: feat: add plugin marketplace --- website/src/content/blog/herdr-0-6-3.md | 85 +++++++++++++++++++++++++++++++ website/src/content/docs/marketplace.mdx | 54 ++++++++++++-------- website/src/content/docs/plugins.mdx | 15 +++--- website/src/content/releases/v0-6-3.md | 86 -------------------------------- 4 files changed, 127 insertions(+), 113 deletions(-) create mode 100644 website/src/content/blog/herdr-0-6-3.md delete mode 100644 website/src/content/releases/v0-6-3.md (limited to 'website/src/content') diff --git a/website/src/content/blog/herdr-0-6-3.md b/website/src/content/blog/herdr-0-6-3.md new file mode 100644 index 00000000..97bd2b28 --- /dev/null +++ b/website/src/content/blog/herdr-0-6-3.md @@ -0,0 +1,85 @@ +--- +title: "Herdr 0.6.3: session persistence, safer updates, and workspace navigation" +description: "This one adds new persistence paths for updates, server restarts, and larger sessions." +date: 2026-05-27 +draft: false +--- + +## Persistence for the hard parts + +Session persistence is not one feature. A detached client, a stopped server, a terminal history replay, an agent conversation restore, and an update handoff all protect different parts of the workspace. + +Herdr 0.6.3 pushes on three of those boundaries. + +### Agent restore after server restart + +When a Herdr server stops, normal pane processes stop with it. Native agent restore is the path for getting supported agent conversations back after that kind of restart. + +With `[session] resume_agents_on_restore = true`, Herdr can use official session references from supported integrations to relaunch Pi, Claude Code, Codex, OpenCode, and Hermes panes into their previous conversations. + +[Read the session restore docs](/docs/session-state/#native-agent-session-restore). + +### Pane screen history + +Pane screen history solves the visual half of restart recovery. When enabled, Herdr saves recent pane output and replays it into restored panes so the workspace does not come back as a set of empty terminals. + +It is useful for shells, logs, dev servers, and agent panes where recent output explains what was happening before the server stopped. + +[Read how pane history differs from live persistence](/docs/session-state/#what-survives). + +### Live handoff for updates + +Live handoff is the update path for supported running sessions. Instead of stopping the old server and killing pane processes, Herdr can ask the old server to transfer live PTY ownership to the updated server. + +It is currently experimental and opt-in with `herdr update --handoff` and `herdr --remote --handoff`. That keeps the default path conservative while the feature gets more real-world coverage. + +[Read the live handoff docs](/docs/session-state/#live-handoff). + +For the technical background, read the deep dive: [Live updates without killing your terminal processes](/blog/live-updates-without-killing-your-terminal-processes/). + +## Session navigator + +Large Herdr sessions need fast movement. The new session navigator opens with `prefix+g` and gives you a searchable workspace, tab, and pane tree. + +At a glance, you can see the full tree of workspaces, tabs, and panes. Press `/` to fuzzy find by text. Press `b`, `w`, `i`, or `d` to filter by blocked, working, idle, or done panes. Press `a` or Backspace to clear the state filter. + +Use it to jump straight to the pane that needs attention without manually scanning the sidebar. + +
+ +
+ The session navigator shows workspaces, tabs, panes, and agent states in one searchable tree. +
+
+ +## More terminal workflow polish + +Direct agent terminal attaches now have scrollback, so PageUp, PageDown, and mouse wheel scrolling work in the attach viewport when the running terminal app has not requested that input for itself. + +Herdr also gained better update and remote-bootstrap behavior for package-manager installs, more reliable event delivery under load, and fixes across agent detection, terminal colors, sound alerts, and integration lifecycle handling. + +## Pane metadata reporting + +The new `pane.report_metadata` socket method and `herdr pane report-metadata` CLI command let integrations and local hooks customize what Herdr shows for a pane. + +After installing an integration, the integration can report a title, visible agent name, compact status label, state label, and native session metadata without taking over unrelated lifecycle behavior. + +You can also use it from your own scripts. For example, a hook can mark a pane as running a deploy, rename a long-lived task, or ask an agent to report a more specific state for the work it is doing. + +```bash +herdr pane report-metadata \ + --title "api deploy" \ + --agent-name "codex" \ + --state-label "reviewing logs" \ + --compact-status "deploy" +``` + +This gives integrations a supported way to make panes more readable while keeping Herdr's session and agent ownership rules intact. + +[Read the socket API docs](/docs/socket-api/). + +## Full notes + +This page highlights the product changes. The complete release notes remain on GitHub. + +[Open the 0.6.3 GitHub release](https://github.com/ogulcancelik/herdr/releases/tag/v0.6.3). diff --git a/website/src/content/docs/marketplace.mdx b/website/src/content/docs/marketplace.mdx index f07b8f87..09a27b2d 100644 --- a/website/src/content/docs/marketplace.mdx +++ b/website/src/content/docs/marketplace.mdx @@ -1,39 +1,53 @@ --- title: Marketplace -description: Publish and share Herdr plugins, and get listed when the marketplace launches. +description: Discover community Herdr plugins on GitHub, and get your own plugin listed. --- -The Herdr plugin marketplace is a discoverable index of installable plugins. It -is not live yet. This page is how to be ready for it. +The Herdr plugin marketplace is a discoverable index of community plugins. +Browse it at [herdr.dev/plugins](/plugins/). It is an automatic index of public +GitHub repositories, not a reviewed catalog. -## Share a plugin today +## Browse plugins + +The [marketplace](/plugins/) lists every public repository tagged with the +GitHub topic `herdr-plugin`. Search by name, owner, description, or language, +and sort by popularity, recent activity, or newest. Each listing links straight +to its source repository on GitHub. + +Discovery is automatic and unreviewed. A listing means a repository tagged +itself, not that Herdr vetted it, so the +[trust guidance](/docs/plugins/#trust-and-security) applies before you install +anything. + +## Install a plugin The marketplace adds discovery on top of installation; it does not replace it. -Anyone can already install your plugin straight from GitHub: +Install any plugin straight from GitHub: ```bash herdr plugin install owner/repo[/subdir...] ``` Publish a normal public GitHub repository with a `herdr-plugin.toml` manifest at -its root, or in a subdirectory, and that command works now. See +its root, or in a subdirectory, and that command works. See [Plugins](/docs/plugins/) for the manifest and authoring reference. -## Get listed when it launches +## Get your plugin listed -If you want your plugin to appear in the website marketplace when discovery -launches, add the GitHub topic `herdr-plugin` to your repository now. That -topic is the signal the future index will use for discovery, so tagging a -public plugin today means it can be listed when the marketplace goes live. +Add the GitHub topic `herdr-plugin` to a public repository. That topic is the +only signal the index uses, so tagging a public plugin is all it takes. The +index refreshes automatically every 30 minutes, so a newly tagged repository +shows up shortly after, and one that drops the topic disappears on the next +refresh. -## What a listing will show +## What a listing shows -A marketplace card will surface your plugin's `id`, `name`, `description`, -declared `platforms`, and a link back to the source repository. Getting that -manifest metadata right today is what makes your listing accurate later. Declare -`platforms` honestly, because the index will use it to show where a plugin runs. +Each card shows GitHub repository metadata: the repository name and owner, its +description, star count, primary language, and the time it was last pushed, with +a link back to the source. The index reads this from GitHub's repository search, +so keeping your repository description and topics accurate is what makes your +listing useful. -Plugins stay ordinary GitHub repositories. The marketplace is a discovery layer -on top of the same `herdr plugin install` path you can use now. A listing makes a -plugin easier to find; it does not mean Herdr has reviewed it, so the -[trust guidance](/docs/plugins/#trust-and-security) still applies. +The index does not parse `herdr-plugin.toml` yet, so manifest fields like the +plugin `id`, declared `platforms`, and `min_herdr_version` are not shown in v1. +Forks and archived repositories are excluded from the list. diff --git a/website/src/content/docs/plugins.mdx b/website/src/content/docs/plugins.mdx index 9f069fdf..9f57ff47 100644 --- a/website/src/content/docs/plugins.mdx +++ b/website/src/content/docs/plugins.mdx @@ -304,10 +304,11 @@ state should own their files or database. ## Marketplace -A plugin marketplace is coming. Plugins are already shareable today: publish a -GitHub repository with `herdr-plugin.toml`, then share -`herdr plugin install owner/repo[/subdir]`. - -If you want the plugin to appear in the website marketplace when discovery -launches, add the GitHub topic `herdr-plugin` to the repository now. See -[Marketplace](/docs/marketplace/) for how publishing and discovery will work. +Community plugins are discoverable in the [marketplace](/plugins/), an automatic +index of public GitHub repositories tagged with the topic `herdr-plugin`. +Plugins stay ordinary GitHub repositories: publish one with `herdr-plugin.toml`, +then share `herdr plugin install owner/repo[/subdir]`. + +To get a plugin listed, add the GitHub topic `herdr-plugin` to its public +repository. The index refreshes every 30 minutes. See +[Marketplace](/docs/marketplace/) for how discovery works. diff --git a/website/src/content/releases/v0-6-3.md b/website/src/content/releases/v0-6-3.md deleted file mode 100644 index 23514cc6..00000000 --- a/website/src/content/releases/v0-6-3.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "session persistence, safer updates, and workspace navigation" -version: "0.6.3" -path: "0.6.3/session-persistence-safer-updates-and-workspace-navigation" -description: "This one adds new persistence paths for updates, server restarts, and larger sessions." -date: 2026-05-27 ---- - -## Persistence for the hard parts - -Session persistence is not one feature. A detached client, a stopped server, a terminal history replay, an agent conversation restore, and an update handoff all protect different parts of the workspace. - -Herdr 0.6.3 pushes on three of those boundaries. - -### Agent restore after server restart - -When a Herdr server stops, normal pane processes stop with it. Native agent restore is the path for getting supported agent conversations back after that kind of restart. - -With `[session] resume_agents_on_restore = true`, Herdr can use official session references from supported integrations to relaunch Pi, Claude Code, Codex, OpenCode, and Hermes panes into their previous conversations. - -[Read the session restore docs](/docs/session-state/#native-agent-session-restore). - -### Pane screen history - -Pane screen history solves the visual half of restart recovery. When enabled, Herdr saves recent pane output and replays it into restored panes so the workspace does not come back as a set of empty terminals. - -It is useful for shells, logs, dev servers, and agent panes where recent output explains what was happening before the server stopped. - -[Read how pane history differs from live persistence](/docs/session-state/#what-survives). - -### Live handoff for updates - -Live handoff is the update path for supported running sessions. Instead of stopping the old server and killing pane processes, Herdr can ask the old server to transfer live PTY ownership to the updated server. - -It is currently experimental and opt-in with `herdr update --handoff` and `herdr --remote --handoff`. That keeps the default path conservative while the feature gets more real-world coverage. - -[Read the live handoff docs](/docs/session-state/#live-handoff). - -For the technical background, read the deep dive: [Live updates without killing your terminal processes](/blog/live-updates-without-killing-your-terminal-processes/). - -## Session navigator - -Large Herdr sessions need fast movement. The new session navigator opens with `prefix+g` and gives you a searchable workspace, tab, and pane tree. - -At a glance, you can see the full tree of workspaces, tabs, and panes. Press `/` to fuzzy find by text. Press `b`, `w`, `i`, or `d` to filter by blocked, working, idle, or done panes. Press `a` or Backspace to clear the state filter. - -Use it to jump straight to the pane that needs attention without manually scanning the sidebar. - -
- -
- The session navigator shows workspaces, tabs, panes, and agent states in one searchable tree. -
-
- -## More terminal workflow polish - -Direct agent terminal attaches now have scrollback, so PageUp, PageDown, and mouse wheel scrolling work in the attach viewport when the running terminal app has not requested that input for itself. - -Herdr also gained better update and remote-bootstrap behavior for package-manager installs, more reliable event delivery under load, and fixes across agent detection, terminal colors, sound alerts, and integration lifecycle handling. - -## Pane metadata reporting - -The new `pane.report_metadata` socket method and `herdr pane report-metadata` CLI command let integrations and local hooks customize what Herdr shows for a pane. - -After installing an integration, the integration can report a title, visible agent name, compact status label, state label, and native session metadata without taking over unrelated lifecycle behavior. - -You can also use it from your own scripts. For example, a hook can mark a pane as running a deploy, rename a long-lived task, or ask an agent to report a more specific state for the work it is doing. - -```bash -herdr pane report-metadata \ - --title "api deploy" \ - --agent-name "codex" \ - --state-label "reviewing logs" \ - --compact-status "deploy" -``` - -This gives integrations a supported way to make panes more readable while keeping Herdr's session and agent ownership rules intact. - -[Read the socket API docs](/docs/socket-api/). - -## Full notes - -This page highlights the product changes. The complete release notes remain on GitHub. - -[Open the 0.6.3 GitHub release](https://github.com/ogulcancelik/herdr/releases/tag/v0.6.3). -- cgit v1.2.3