Feature request
Add a dedicated memu-pi host adapter for
@earendil-works/pi-coding-agent,
following the existing host-adapter pattern used by Claude Code, Codex, Hermes,
OpenClaw, and the other supported agents.
Why a dedicated adapter is needed
pi stores v3 JSONL sessions under:
~/.pi/agent/sessions/<encoded-cwd>/*.jsonl
The generic adapter can partially sniff this typed-message format, but it does
not model pi's records precisely. In particular, an assistant entry whose
content contains only toolCall blocks is currently classified as a normal
conversation message. That feeds tool arguments into the conversation track
instead of the tool track. A read-only scan of 10 recent real pi sessions found
385 such pure tool-call entries.
pi also has stable host-specific integration points that the generic adapter
cannot safely infer:
- global instructions:
~/.pi/agent/AGENTS.md;
- skills:
~/.pi/agent/skills;
- headless scheduled execution:
pi -p <prompt>;
- scheduled-run identity:
PI_SESSION_ID and PI_SESSION_FILE;
- custom locations:
PI_CODING_AGENT_DIR and
PI_CODING_AGENT_SESSION_DIR.
Proposed support
Add a small memu.hosts.pi package containing one TranscriptSource and one
HostSpec, plus the memu-pi console entry point.
The transcript source would:
- discover sessions recursively below pi's session root;
- retain user and assistant text as
MESSAGE;
- classify
toolResult, bashExecution, and pure assistant toolCall entries
as TOOL;
- retain narrated assistant tool calls as conversation messages when a text
block is present;
- ignore session headers, compaction records, thinking-only entries, malformed
JSON, and unknown records.
The host specification would reuse memU's existing bridging, instruction,
skills, scheduling, and lifecycle-reporting machinery rather than adding new
framework code.
Platform coverage
- macOS: install instructions and an OS-scheduled bridge using
pi -p.
- Linux: the same cron-compatible bridge as macOS.
- Windows: Task Scheduler support through memU's existing
schedule
commands, including headless-auth verification.
All platforms would support pi's default paths. The adapter would also honor
PI_CODING_AGENT_DIR and PI_CODING_AGENT_SESSION_DIR for custom layouts.
This proposal does not claim end-to-end platform certification until each OS
has been exercised; it only provides the same platform-specific installation
and scheduling surfaces as the existing adapters.
Documentation changes
- add pi to the README adapter and CLI tables;
- route
~/.pi detection from memu-agent to memu-pi;
- add install, bridging-task, and uninstall guides;
- document the npm install and pi authentication prerequisites.
Acceptance criteria
memu-pi prepare reads default and configured pi v3 session directories;
- pure tool-call rows never enter the conversation track;
memu-pi install-instruction manages only memU's block in pi's global
AGENTS.md and installs the existing retrieval skill;
- macOS/Linux and Windows scheduling commands render valid host-specific
wrappers and prompts;
memu-agent detect ~/.pi redirects to the dedicated adapter;
- focused classifier and scheduling tests pass, along with the repository's
full make check and make test suites.
Compatibility and scope
The change adds no dependency and no new abstraction. It reuses HostSpec, the
bridging pipeline, OS scheduling helpers, and the existing instruction/skill
installers. Unknown future pi record types degrade to OTHER rather than being
included as conversation data.
Implementation
The focused implementation and tests are available in #675.
Current validation:
make check passes;
make test passes (604 passed, 8 skipped);
- 385/385 pure tool-call rows in the sampled real pi sessions are classified
as TOOL.
Feature request
Add a dedicated
memu-pihost adapter for@earendil-works/pi-coding-agent,following the existing host-adapter pattern used by Claude Code, Codex, Hermes,
OpenClaw, and the other supported agents.
Why a dedicated adapter is needed
pi stores v3 JSONL sessions under:
The generic adapter can partially sniff this typed-message format, but it does
not model pi's records precisely. In particular, an assistant entry whose
content contains only
toolCallblocks is currently classified as a normalconversation message. That feeds tool arguments into the conversation track
instead of the tool track. A read-only scan of 10 recent real pi sessions found
385 such pure tool-call entries.
pi also has stable host-specific integration points that the generic adapter
cannot safely infer:
~/.pi/agent/AGENTS.md;~/.pi/agent/skills;pi -p <prompt>;PI_SESSION_IDandPI_SESSION_FILE;PI_CODING_AGENT_DIRandPI_CODING_AGENT_SESSION_DIR.Proposed support
Add a small
memu.hosts.pipackage containing oneTranscriptSourceand oneHostSpec, plus thememu-piconsole entry point.The transcript source would:
MESSAGE;toolResult,bashExecution, and pure assistanttoolCallentriesas
TOOL;block is present;
JSON, and unknown records.
The host specification would reuse memU's existing bridging, instruction,
skills, scheduling, and lifecycle-reporting machinery rather than adding new
framework code.
Platform coverage
pi -p.schedulecommands, including headless-auth verification.
All platforms would support pi's default paths. The adapter would also honor
PI_CODING_AGENT_DIRandPI_CODING_AGENT_SESSION_DIRfor custom layouts.This proposal does not claim end-to-end platform certification until each OS
has been exercised; it only provides the same platform-specific installation
and scheduling surfaces as the existing adapters.
Documentation changes
~/.pidetection frommemu-agenttomemu-pi;Acceptance criteria
memu-pi preparereads default and configured pi v3 session directories;memu-pi install-instructionmanages only memU's block in pi's globalAGENTS.mdand installs the existing retrieval skill;wrappers and prompts;
memu-agent detect ~/.piredirects to the dedicated adapter;full
make checkandmake testsuites.Compatibility and scope
The change adds no dependency and no new abstraction. It reuses
HostSpec, thebridging pipeline, OS scheduling helpers, and the existing instruction/skill
installers. Unknown future pi record types degrade to
OTHERrather than beingincluded as conversation data.
Implementation
The focused implementation and tests are available in #675.
Current validation:
make checkpasses;make testpasses (604 passed, 8 skipped);as
TOOL.