ch1nyzzz-pi-evo

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

Evo-Pi

A local-first coding agent that learns from your own work.

npm license

Evo-Pi is an AI coding agent you run in your terminal — like Claude Code or a similar assistant — that reads, edits, and runs code through conversation. What sets it apart: it also learns from how you actually work and proposes narrow, reviewable improvements to its own prompts, skills, and configuration over time.

Under the hood it combines the Pi terminal coding agent with a built-in evolution engine. It records local session evidence, proposes narrow improvements, evaluates them independently, and activates them through deterministic policy or explicit review. Every active personal configuration is an immutable local bundle with rollback history.

Install

Requires Node.js 22.19 or newer (check with node --version).

npm install -g --ignore-scripts @ch1nyzzz/evo-pi
evo-pi

--ignore-scripts skips optional native post-install steps; the evo-pi CLI itself needs no build step and works without them.

The evo-pi executable includes the coding agent and loads Evo automatically. There is no separate Pi installation or pi install step. Upgrade later with evo-pi update --self.

First run

Evo-Pi needs a model provider. On first launch, run /login to connect one — it supports Anthropic, OpenAI, Google, xAI, Groq, DeepSeek, OpenRouter, GitHub Copilot and many others, through OAuth or your own API key. Use whichever account or key you already have; Evo-Pi does not resell model access.

Then initialize the evolution engine once:

/login          connect a model provider (OAuth or API key)
/evo init       set up local evolution state
/evo status     confirm everything is ready

Now just talk to it — ask it to explain code, fix a bug, or build something. From inside a project directory:

> explain what src/cli.ts does
> add a --verbose flag to the CLI and update the tests
> run the tests and fix whatever fails

The evolution engine works quietly in the background from there; see below for how to inspect and control it.

Product and personal-data boundary

The published npm packages contain shared product code only:

  • terminal UI, model providers, authentication, sessions, and coding tools
  • Recorder, immutable bundle runtime, proposal workflow, evaluation, approval, trials, and rollback
  • default workflow templates, schemas, and host-defined component ABIs

Personal evolution state is created at runtime and remains outside the installed package:

${PI_CODING_AGENT_DIR:-~/.pi/agent}/evo/
├── log/                 session evidence
├── session-digests/     derived local metrics
├── inbox/               preference, request, and note candidates
├── bundles/             immutable personal prompts, skills, memory, and preferences
├── proposals/           candidate changes and approval records
├── reports/             local reports and model-usage journal
├── runs/                background evolution runs
├── worktrees/           isolated code candidates
└── registry/            active digest, trials, history, and rollback state

Durable preferences are stored in the active local bundle at bundles/<digest>/memory/preferences.json. User sessions, preferences, memory, bundles, reports, and generated candidates are never included in npm releases or committed back to this repository by Evo-Pi.

Project-owned instructions such as AGENTS.md are separate from personal evolution state and may be shared through the project's own Git repository. Add .pi/evo-private to a project root to disable recording for that project.

Privacy statement

Evo-Pi has no hosted synchronization database; personal evolution state is persisted locally. Model execution still sends the current conversation and selected evidence required for a requested evolution run to the model provider chosen by the user. "Local-first" describes storage and ownership, not offline-only inference.

Evolution loop

local evidence
  → ResearchPlanner: grounded research plan and frozen experiment
  → Builder: one data, component, or isolated code candidate
  → Evaluator: independent evaluation and adversarial review
  → deterministic release policy or explicit human approval
  → reversible trial, keep, or rollback

Useful commands:

/evo help
/evo report
/evo go <research goal>
/evo inspect
/evo list
/evo show <proposal-id>
/evo permit <proposal-id>
/evo rollback

Use evo-pi-admin <command> for non-interactive local administration and external scheduling.

Repository packages

Package Purpose
@ch1nyzzz/evo-pi One-command product distribution and evo-pi entry point
@ch1nyzzz/pi-evo Evolution engine and embedded Pi extension
@ch1nyzzz/pi-coding-agent Pi terminal coding-agent runtime and SDK
@ch1nyzzz/pi-agent-core Agent loop and state management
@ch1nyzzz/pi-ai Multi-provider model API
@ch1nyzzz/pi-tui Terminal UI library

See packages/evo/README.md for the complete evolution architecture, approval tiers, command reference, and current limitations.

Development

npm install --ignore-scripts
npm run build
npm run check
./test.sh

Create an isolated release install outside the repository:

npm run release:local -- --out /tmp/evo-pi-release --force
/tmp/evo-pi-release/node/evo-pi --help
/tmp/evo-pi-release/node/evo-pi --version

Security

Evo-Pi has the same filesystem and process permissions as the user who launches it. Extensions and coding tools can execute code. Use a container or sandbox when stronger isolation is required. Generated ordinary code candidates remain in isolated worktrees and are not automatically merged or installed.

Report vulnerabilities according to SECURITY.md.

Upstream and license

Evo-Pi is based on Pi. The repository is licensed under the MIT License.