pi-mono/packages/coding-agent/examples
Petr Houška 991cb1ad24 fix(coding-agent): edit keeps line endings of untouched lines, diffs before writing
The edit tool wrote the whole file back with the first line ending it
found, so mixed CRLF/LF files and lone CRs were rewritten. Replacements
are now mapped from the LF-normalized text back to the original and
spliced in; new line breaks use the ending of the replaced line.

The diff and patch were computed after writing and diffed the whole
file, which ran out of memory on large files after the write. They are
now computed before writing, and files larger than 5 MB get a notice
instead of a diff (empty patch).

fixes #8544
2026-11-05 23:46:20 +01:00
..
extensions fix(coding-agent): edit keeps line endings of untouched lines, diffs before writing 2026-11-05 23:46:20 +01:00
sdk feat(coding-agent): list MCP servers instead of their tools in codemode 2026-09-30 13:54:02 +02:00
README.md feat(coding-agent): remove the experimental server stack and the client, protocol, and server packages 2026-10-12 10:41:59 +00:00
rpc-client.ts feat: build with TypeScript 7 and run sources with plain node 2026-09-25 13:14:33 +02:00
rpc-extension-ui.ts feat: build with TypeScript 7 and run sources with plain node 2026-09-25 13:14:33 +02:00
tsconfig.json feat(storage): replication (#11696) 2026-11-05 12:03:16 +01:00

Examples

Example code for the pi-coding-agent SDK, process integration, and extensions.

CLI integration

rpc-client.ts uses the typed RpcClient to run Pi in a child process, stream events, and wait for the run to settle.

Build the coding-agent package before running it from a repository checkout:

node examples/rpc-client.ts "Explain this repository"

Directories

sdk/

Programmatic usage via createAgentSession(). Shows how to customize models, prompts, tools, extensions, and session management.

extensions/

Example extensions demonstrating:

  • Lifecycle event handlers (tool interception, safety gates, context modifications)
  • Custom tools (todo lists, questions, subagents, output truncation)
  • Commands and keyboard shortcuts
  • Custom UI (footers, headers, editors, overlays)
  • Git integration (checkpoints, auto-commit)
  • System prompt modifications and custom compaction
  • External integrations (SSH, file watchers, system theme sync)
  • Custom providers (Anthropic with custom streaming, GitLab Duo)

Documentation