Full pi coding agent setup — extensions, skills, themes, agents, model router — ready for VPS deployment.
This repo mirrors the ~/.pi/ directory structure so you can clone it directly onto any machine and have your complete pi agent configuration ready to go.
~/.pi/
├── agent/
│ ├── AGENTS.md # Global agent instructions
│ ├── settings.json # pi settings (theme, provider, model)
│ ├── package.json # Node dependencies (yaml parser)
│ ├── package-lock.json
│ ├── auth.json # API keys (empty placeholder — set your own)
│ ├── damage-control-rules.yaml # Damage control rules for agents
│ │
│ ├── agents/ # 12 agent definitions + teams.yaml + agent-chain.yaml
│ │ ├── bowser.md
│ │ ├── builder.md
│ │ ├── config-scout.md
│ │ ├── documenter.md
│ │ ├── pi-orchestrator.md
│ │ ├── planner.md
│ │ ├── plan-reviewer.md
│ │ ├── red-team.md
│ │ ├── researcher.md
│ │ ├── reviewer.md
│ │ ├── scout.md
│ │ ├── ultra-simple.md
│ │ ├── teams.yaml
│ │ └── agent-chain.yaml
│ │
│ ├── extensions/ # 7 active extensions
│ │ ├── cross-agent.ts
│ │ ├── minimal.ts
│ │ ├── session-replay.ts
│ │ ├── system-select.ts
│ │ ├── theme-cycler.ts
│ │ ├── tool-counter-widget.ts
│ │ └── wiki-session-docs.ts
│ │
│ ├── extensions-available/ # 8 optional extensions
│ │ ├── agent-chain.ts
│ │ ├── agent-team.ts
│ │ ├── pi-pi/ # Pi-in-pi extension
│ │ ├── pi-pi.ts
│ │ ├── pure-focus.ts
│ │ ├── purpose-gate.ts
│ │ ├── subagent-widget.ts
│ │ ├── tilldone.ts
│ │ └── tool-counter.ts
│ │
│ ├── skills/ # 6 agent skills
│ │ ├── brain-wiki/ # Brain knowledge base integration
│ │ ├── building-with-tambo/ # Tambo AI integration
│ │ ├── deep-research/ # Parallel.ai deep research
│ │ ├── find-skills/ # Skill discovery
│ │ ├── git-skills/ # Git operations
│ │ └── github-skills/ # GitHub operations
│ │
│ ├── themes/ # 11 custom themes
│ │ ├── catppuccin-mocha.json
│ │ ├── cyberpunk.json
│ │ ├── dracula.json
│ │ ├── everforest.json
│ │ ├── gruvbox.json
│ │ ├── midnight-ocean.json
│ │ ├── nord.json
│ │ ├── ocean-breeze.json
│ │ ├── rose-pine.json
│ │ ├── synthwave.json
│ │ └── tokyo-night.json
│ │
│ ├── prompts/ # 5 prompt templates
│ │ ├── ask.md
│ │ ├── brain.md
│ │ ├── ingest.md
│ │ ├── lint.md
│ │ └── research.md
│ │
│ ├── lib/ # Shared libraries
│ │ └── themeMap.ts
│ │
│ └── docs/ # Extension documentation
│ ├── COMPARISON.md
│ ├── PI_VS_OPEN_CODE.md
│ ├── RESERVED_KEYS.md
│ ├── THEME.md
│ └── TOOLS.md
│
├── model-router/ # GLM Model Router (Python)
│ ├── model_router.py # Core routing engine
│ ├── router_cli.py # CLI interface
│ ├── router_server.py # HTTP server
│ ├── test_router.py # Tests
│ ├── examples.py # Usage examples
│ ├── models-config.yaml # Model configuration
│ ├── requirements.txt # Python deps
│ ├── server-requirements.txt # Server deps
│ ├── start.sh # Quick start
│ ├── README.md
│ ├── QUICKSTART.md
│ └── SUMMARY.md
│
├── Brain/ # Brain Wiki (sync script only)
│ ├── sync.sh # Git sync script
│ ├── AGENTS.md # Wiki instructions
│ └── ONBOARDING.md # Onboarding guide
│
└── examples/
└── project-config/ # Project-level config templates
├── pi/
│ ├── agents/ # 8 team agent definitions
│ └── extensions/
│ └── unibrain-head/ # Head agent extension
└── agents/
├── teams/ # Team charters
├── pipeline/ # CI/CD pipeline config
├── config/ # Quality gates, constitution
├── agent-memory/ # Agent memory (empty)
└── bug-reports/ # Bug reports (empty)
curl -fsSL https://raw.githubusercontent.com/JaskoCoder/pi-agent-setup/main/install.sh | bash# 1. Install Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# 2. Install pi coding agent
npm install -g @mariozechner/pi-coding-agent
# 3. Install Python 3 (for model router)
sudo apt-get install -y python3 python3-pip
# 4. Clone this repo to ~/.pi
git clone https://github.com/JaskoCoder/pi-agent-setup.git ~/.pi
# 5. Install Node dependencies
cd ~/.pi/agent && npm install
# 6. Install model router dependencies
cd ~/.pi/model-router && pip3 install -r requirements.txt
# 7. Set up API keys
# Edit ~/.pi/agent/auth.json with your provider API keys, OR
# Set environment variables:
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
# etc.
# 8. Clone Brain Wiki (optional, requires access)
git clone https://github.com/JaskoCoder/brain-wiki.git ~/.pi/BrainTo use this agent setup with a project, copy the project-level config:
# In your project root:
mkdir -p .pi .agents
# Copy agent definitions for your project teams
cp -r ~/.pi/examples/project-config/pi/agents/ .pi/agents/
cp -r ~/.pi/examples/project-config/pi/extensions/ .pi/extensions/
# Copy the autonomous organization
cp -r ~/.pi/examples/project-config/agents/* .agents/Then customize:
.pi/agents/*.md— Edit agent definitions for your project's tech stack.pi/extensions/unibrain-head/index.ts— Customize the head agent.agents/teams/*.md— Adjust team charters.agents/config/— Set quality gates and pipeline config
The settings.json configures:
- Provider:
zai-glm(GLM model provider) - Model:
glm-5 - Theme:
synthwave(plus 10 others available) - Damage Control: disabled
To change providers/models, edit ~/.pi/agent/settings.json or set them in pi's interactive config.
11 custom themes included:
- Catppuccin Mocha, Cyberpunk, Dracula, Everforest, Gruvbox
- Midnight Ocean, Nord, Ocean Breeze, Rosé Pine, Synthwave, Tokyo Night
Switch themes with the theme-cycler extension or edit settings.json.
The GLM Model Router is a Python tool that routes tasks to the most appropriate model based on task characteristics. See model-router/README.md for full documentation.
The Brain Wiki is a private knowledge base that syncs via GitHub. To set it up:
# Clone the private wiki repo into ~/.pi/Brain
git clone https://github.com/JaskoCoder/brain-wiki.git ~/.pi/Brain
# Sync with the included script
bash ~/.pi/Brain/sync.sh --pullauth.jsonis an empty placeholder — never commit API keys- Brain Wiki content is excluded (private repo)
- No sessions or runtime state is included
- No binaries — tools like
rg,fdare installed by pi
- Node.js >= 22
- pi (
@mariozechner/pi-coding-agent) - Python >= 3.10 (for model router, optional)
- Git (for Brain Wiki sync)
Personal configuration — use freely as a template for your own pi setup.