by code-yeongyu
pi had nothing (nothing), so I made something (something) — sorry mariozechner-senpai, I went ahead and lovingly soiled your pure pi for you. opinionated fork of badlogic/pi-mono with extension-first additions. ganbare ganbare senpi 頑張れ頑張れ先輩
# Add to your Claude Code skills
git clone https://github.com/code-yeongyu/senpiLast scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:33:35.467Z",
"npmAuditRan": true,
"pipAuditRan": true
}senpi is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by code-yeongyu. pi had nothing (nothing), so I made something (something) — sorry mariozechner-senpai, I went ahead and lovingly soiled your pure pi for you. opinionated fork of badlogic/pi-mono with extension-first additions. ganbare ganbare senpi 頑張れ頑張れ先輩. It has 268 GitHub stars.
Yes. senpi passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/code-yeongyu/senpi" and add it to your Claude Code skills directory (see the Installation section above).
senpi is primarily written in TypeScript. It is open-source under code-yeongyu on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh senpi against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Experimental. senpi is an opinionated, in-flight fork of badlogic/pi-mono. It powers Dori under the hood and reflects what one specific AI assistant needs from a coding-agent runtime. Use it; don't bet a production pipeline on it.
senpi is a senpai-name pun and a more sane pi with extra batteries included — a TypeScript monorepo that rebrands pi-mono's coding agent as senpi and ships a curated set of builtin extensions and core tweaks on top of upstream.
Upstream: pi-mono by @mariozechner — tools for building AI agents and managing LLM deployments.
senpi was born from two influences:
Core source modifications are minimised and tracked in changes.md files alongside every modified subdirectory so upstream rebases stay clean.
If you're migrating from OMO (oh-my-openagent), here is the practical map from "what I used in OMO" to "what to install in senpi". A lot of OMO's signature work is already wired into senpi as a builtin (nothing to install); the rest lives in the code-yeongyu/pi-* GitHub repos and is one senpi install away.
senpi is intentionally lighter than OMO — single CLI binary, not an opencode plugin. Some OMO concepts (Discipline Agents, Team Mode, Skills, Hashline, Ralph Loop,
/init-deep) have no 1:1 senpi counterpart and are flagged at the bottom of this section. If you need those, keep using OMO.
| OMO feature | senpi builtin |
|---|---|
| 🚪 IntentGate | Dynamic system prompt — every prompt opens with a forced intent gate before tool use. |
| ✅ Todo Enforcer | todowrite + continuation loop that re-engages idle agents. |
| Per-model tuning ("Model Setup") | prompt-preset — GPT-5.x / Claude Opus 4.{5,6,7} / Kimi K2.6 presets. |
| Session recovery / context management | compaction — adaptive thresholds, restoration tracker, emergency compaction, tool-result truncation. |
| Apply-patch on GPT models | gpt-apply-patch — Codex-style freeform apply_patch with Lark grammar. |
| Native web search (Anthropic + OpenAI) | anthropic-web-search, openai-web-search builtins. |
| Bash timeout discipline | bash-timeout — default + max-timeout enforcement, policy in system prompt. |
| Compaction-safe tool pairing | tool-pair-guard — strips orphan tool_result blocks. |
| Permission system (opencode-style allow/deny) | permission-system — rules, JSONL storage, TUI prompts, parser-aware patterns. |
senpi install git:github.com/code-yeongyu/pi-lsp-client # 🛠️ LSP: rename / goto / refs / diagnostics + /lsp inspector
senpi install git:github.com/code-yeongyu/pi-ast-grep # 🛠️ AST-Grep across 25 languages (auto-downloads sg)
senpi install git:github.com/code-yeongyu/pi-comment-checker # 💬 Comment Checker — the standalone pi port of OMO's hook
senpi install git:github.com/code-yeongyu/pi-rules # Context injection: .claude/rules, .cursor/rules, .github/instructions, AGENTS.md, CLAUDE.md
senpi install git:github.com/code-yeongyu/pi-nested-agents-md # 🔍 Auto-injects nearby AGENTS.md (the runtime half of /init-deep)
senpi install git:github.com/code-yeongyu/pi-websearch # 📚 Provider-backed web search (fills the Exa-style slot)
senpi install git:github.com/code-yeongyu/pi-webfetch # web_fetch tool (markdown / text / HTML, bounded time + size)
senpi install git:github.com/code-yeongyu/pi-goal # Persistent goal tracking + continuation prompts (closest thing to Sisyphus discipline)
# Optional — only if you used the matching OMO surface:
senpi install git:github.com/code-yeongyu/pi-cua-integration # 🖥️ Computer-use bindings (desktop / browser)
senpi install git:github.com/code-yeongyu/pi-anthropic-computer-use # Claude-native computer use
senpi install git:github.com/code-yeongyu/pi-anthropic-code-execution # Claude-native code execution
senpi install git:github.com/code-yeongyu/pi-google-code-execution # Google-native code execution
senpi install git:github.com/code-yeongyu/pi-openai-code-interpreter # OpenAI Code Interpreter
senpi install git:github.com/code-yeongyu/pi-anthropic-text-editor # Claude-native text editor tool
senpi install git:github.com/code-yeongyu/pi-anthropic-tool-search # Claude-native tool search
senpi install git:github.com/code-yeongyu/pi-anthropic-web-fetch # Claude-native web fetch
senpi install git:github.com/code-yeongyu/pi-google-google-search # Google Search grounding
senpi install git:github.com/code-yeongyu/pi-google-url-context # Google URL grounding
senpi install git:github.com/code-yeongyu/pi-openai-api-parallel-tool-calls # OpenAI parallel_tool_calls payload support
Each package is also installable by git URL, e.g. senpi install git:github.com/code-yeongyu/pi-comment-checker. See Senpi Packages for the full install / update / remove flow.
OMO runs with all tool permissions pre-approved. To replicate that behavior in senpi, add a wildcard allow rule to your global settings:
mkdir -p ~/.senpi/agent
cat > ~/.senpi/agent/settings.json << 'EOF'
{
"permission": {
"*": "allow"
}
}
EOF
This tells the permission system to auto-approve every tool call without prompting. The "*" key matches all permission names, and "allow" grants them unconditionally. You can also set this per-project by placing the same settings.json in .senpi/settings.json at the project root.
Note: This disables all interactive permission prompts. Only do this if you trust the model and the workspace you are running in.
These are part of OMO's opencode harness shape and are intentionally not in senpi:
ultrawork / ulw one-word orchestration entrypoint.team_* tool family, hyperplan / security-research skills riding on top.edit / multiedit / apply_patch. pi-comment-checker covers the post-edit validation slot OMO uses Hashline for, just without LINE#ID content-hash identifiers.SKILL.md, scoped per-skill MCP servers) do not exist in senpi./ulw-loop self-referential loop./init-deep — there is no in-tree generator. Generate the hierarchical AGENTS.md tree manually (or with a normal agent prompt), then install pi-nested-agents-md so the agent actually reads them.doctor command, Claude Code hook/command/skill/plugin compatibility layer, and the agent category router (visual-engineering / deep / quick / ultrabrain).senpi ships a fixed set of builtin extensions and stops there. The code-yeongyu/pi-* GitHub repos contain the full extension ecosystem: some packages are vendored into senpi as builtins, while the re