Repolode
code-yeongyu

code-yeongyu/senpi

An opinionated TypeScript fork of pi-mono that turns its terminal coding agent into the senpi CLI, with extra builtin extensions for permissions, prompt presets and web search.

Open-source alternative to:Claude Code

Stars
511
Forks
161
Open issues
1,344
Last commit
yesterday

What is it?

senpi is a TypeScript monorepo forked from badlogic/pi-mono. It rebrands pi's terminal coding agent as the `senpi` CLI and adds a set of builtin extensions on top of upstream, while keeping the core changes small and documented per directory to ease upstream merges.

The builtins cover several areas: an opencode-style permission system with rules and TUI prompts, per-model system prompt presets for GPT, Claude and Kimi models, todo tracking with a continuation loop, compaction for long sessions, bash timeout policies, and provider-backed web search and fetch. The fork also includes a text-based tool-call middleware for models without native function calling, and it can be containerized for stronger isolation.

The project is marked experimental and is designed around the needs of one AI assistant. It supports multiple LLM providers through a unified API and can install extra capabilities such as LSP and AST-grep integrations as standalone packages.

Key features

  • 01Ships the coding agent as a `senpi` CLI with its own config directory.
  • 02Permission system with allow/deny rules, JSONL storage and interactive prompts.
  • 03Per-model system prompt presets for GPT, Claude and Kimi model families.
  • 04Todo tools with a continuation loop that re-engages idle agents.
  • 05Compaction for long sessions, plus bash timeout enforcement.
  • 06Provider-backed web search and webfetch tools, plus a multi-provider LLM API.

Use cases

  • Running a terminal coding agent across several LLM providers with a permission layer.
  • Customizing agent behavior per model through prompt presets and builtin extensions.
  • Forking or extending pi-mono while keeping upstream merges manageable.
  • Running the agent inside a container for stronger filesystem and process isolation.

Things to know

  • The README labels senpi experimental and says not to base a production pipeline on it.
  • It is an opinionated fork of pi-mono with design choices tuned for the Dori assistant, so behavior may diverge from upstream.
  • Several OMO features, such as Team Mode, Skills, and the Ralph Loop, are intentionally absent.

In collections

Topics

FAQ

What is senpi?
An opinionated TypeScript fork of pi-mono that turns its terminal coding agent into the senpi CLI, with extra builtin extensions for permissions, prompt presets and web search. senpi is a TypeScript monorepo forked from badlogic/pi-mono. It rebrands pi's terminal coding agent as the `senpi` CLI and adds a set of builtin extensions on top of upstream, while keeping the core changes small and documented per directory to ease upstream merges.
Is senpi free to use? What license does it have?
senpi is open source under the MIT license. Check the license terms before using it in commercial products.
Is senpi still maintained?
Actively maintained. The last commit to senpi was on Nov 6, 2026.
What can I use senpi for?
Running a terminal coding agent across several LLM providers with a permission layer. Customizing agent behavior per model through prompt presets and builtin extensions. Forking or extending pi-mono while keeping upstream merges manageable. Running the agent inside a container for stronger filesystem and process isolation.
Where can I get senpi?
The source code and installation instructions are on GitHub: https://github.com/code-yeongyu/senpi

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects