@anton-kochev/echo

Echo: a read-only side-channel question asker for pi sessions and project code.

Packages

Package details

extension

Install @anton-kochev/echo from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@anton-kochev/echo
Package
@anton-kochev/echo
Version
0.4.1
Published
May 29, 2026
Downloads
359/mo · 10/wk
Author
anton-kochev
License
MIT
Types
extension
Size
27.3 KB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

echo

A read-only side-channel question asker for pi sessions and project code.

Echo adds a /ask command that spawns an isolated pi side-process with only read-only tools enabled. Answers are shown to you and stored in extension history, but they are not injected into the main agent context — so you can probe the session and project without polluting the conversation that's doing real work.

Install

pi install npm:@anton-kochev/echo

Pin to a version:

pi install npm:@anton-kochev/echo@<version>

For local development from a checkout of pi-extensions:

pi install ./echo

Project-local install:

pi install ./echo -l

Temporary test run:

pi -e ./echo

Pithos .pithos config

pi:
  extensions:
    "@anton-kochev/echo": "npm:0.1.0"

Commands

Inside pi:

/ask [--model <provider/model>] [--] <question>
/asked
/ask-clear
  • /ask — ask Echo a question.
  • /asked — browse previous Echo answers interactively with ↑/↓ and open one with Enter.
  • /ask-clear — clears any stale Echo widget left by older versions.

What Echo can access

Echo launches an isolated Pi side process with only read-only tools enabled:

  • read
  • grep
  • find
  • ls

It does not receive bash, edit, or write. Echo runs from the current project directory, so it can inspect source code and project files read-only.

Session context strategy

Echo uses progressive disclosure to keep token usage low:

  1. A small recent-session excerpt is included in the side-agent prompt.
  2. The full current-session transcript is written to a temporary markdown file.
  3. The side agent is instructed to inspect that transcript only when needed, preferably with targeted grep/read calls.
  4. The temporary transcript is deleted after the side process exits.

Examples

/ask what is this session about?
/ask what files define the extension loading behavior?
/ask --model anthropic/claude-haiku-4-5 summarize the recent decisions
/asked

Notes

This package imports pi runtime packages as peer dependencies:

  • @earendil-works/pi-coding-agent
  • @earendil-works/pi-tui
  • typebox

Do not bundle those dependencies; pi provides them at runtime.

extensions/index.ts is a thin jiti trampoline that disables jiti's module cache for src/echo.ts, so editing the implementation and running /reload always evaluates the newest code.