Skip to content

[Feature Request]: add native jcode agent integration (herdr-agent-state) #2227

Description

@1am2syman

Summary

Add native support for the jcode coding agent so Herdr recognizes and tracks it as a first-class agent, mirroring the existing pi / claude / codex integrations. Today jcode is entirely absent: herdr integration status and herdr integration install <TARGET> have no jcode entry, and herdr agent list never shows a jcode agent.

Problem

jcode (github.com/1jehuang/jcode) is a Rust-based coding agent with a TUI. Because Herdr has no integration for it, Herdr falls back to screen-scraping jcode's TUI (spinner frames, status labels) to infer identity and state. That is fragile and version-dependent:

  • Spinner frames and status text change between jcode releases.
  • Generic words in conversation text cause false positives.
  • jcode sessions are not linked (no agent_session), so Herdr cannot resume or inspect them.

Every other well-supported agent (pi, claude, codex, omp, opencode, kilo, ...) has a native integration file that reports over the Herdr unix socket via pane.report_agent_session. jcode needs the same.

Requested scope

  • Add jcode as a valid target for herdr integration install (currently [possible values: pi, omp, claude, codex, copilot, devin, droid, kimi, opencode, kilo, hermes, qodercli, cursor, mastracode]).
  • Install/manage a herdr-agent-state hook or extension for jcode that implements the pane.report_agent_session protocol, mirroring claude/codex (shell hook) or pi (.ts/plugin extension).
  • Ensure jcode agents appear in herdr agent list with correct agent_status and linked agent_session.
  • Match the existing fail-closed behavior: the hook exits 0 on missing env/socket so it never breaks jcode when Herdr is absent.

Notes on jcode's side

jcode itself needs to invoke the hook at session start and on status transitions (working -> idle/done/blocked). A complementary feature request was filed on the jcode repo (#750 on 1jehuang/jcode) for that side. This issue is the Herdr-side half: recognizing and installing the integration once jcode can emit it.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions