pi-rs — Rust製軽量 Pi AI プログラミングアシスタント
概要
pi-rs は、pi-mono に触発された Rust 製の端末向け AI プログラミングアシスタントです。対話型の TUI を通じてコード作成やファイル操作、コマンド実行を支援することを目的とし、複数の LLM プロバイダへの接続を抽象化しています。会話は JSONL 形式でツリー状に保存でき、ブランチを切って複数の試行を管理できます。また、プラグイン風の「スキル」機構により、ユーザー定義の振る舞いを読み込んで AI の挙動をカスタマイズ可能。軽量かつ拡張容易な設計で、ローカルやクラウドの各種モデルに対応しやすいのが特徴です。
リポジトリの統計情報
- スター数: 8
- フォーク数: 7
- ウォッチャー数: 8
- コミット数: 6
- ファイル数: 9
- メインの言語: Rust
主な特徴
- マルチプロバイダ対応(OpenAI、Anthropic、Google、Moonshot、Ollama、Azure OpenAI、Mistral、Groq)
- TUI ベースの対話インターフェース(端末操作に最適化)
- ファイル操作系ツール群(read/write/edit/bash/grep/find/ls)を内蔵
- JSONL 形式のツリー型会話管理とスキル読み込みによる拡張性
技術的なポイント
pi-rs は「端末で使う AI アシスタント」を念頭に置いた設計がなされており、以下の点が技術的に特徴的です。
- 抽象化されたプロバイダ層:複数の LLM プロバイダを切り替えて使えるよう、プロバイダごとの接続・API 呼び出しロジックを分離している点が拡張性の中心です。新しい提供元の追加はアダプタ実装を追加する形で対応できるはずです。
- ツールシステムの内蔵:read、write、edit、bash、grep、find、ls といったファイルやシェル操作用ツールをツール群として用意し、モデルの出力をただ表示するだけでなく実際の作業に結び付けられる点が便利です。これにより AI が提案した修正を即座に適用・検証できます。
- 会話の永続化と分岐管理:会話を JSONL で保存し、ツリー状(ブランチ可能)に管理することで、実験的なやり取りや複数の試行を履歴として残せます。JSONL は差分の追跡や部分的な再生(replay)にも向いています。
- スキルによるカスタマイズ:外部からスキルを読み込める構造があり、特定のワークフローやプロジェクトに合わせた振る舞いを定義して AI に持たせられます。これはタスク固有のテンプレートや対話フローを組み込むのに有効です。
- 軽量 TUI 技術の採用:README には ratatui 系の使用を匂わせる記述があり、端末上で快適に動く UI を提供する方針です。Rust を用いることでバイナリ配布が容易で、依存を最小限にして高速に起動できるメリットがあります。
- セキュリティと設定の取扱い:API キーやプロバイダ設定は環境変数や設定ファイル経由で扱われることが想定されます。ローカルでモデルを動かす Ollama や Mistral などの対応は、ネットワーク経由の機密情報漏洩リスクを低減する選択肢にもなります。
開発者視点では、プロバイダ抽象化を trait で定義し、非同期のストリーミング応答、エラーハンドリング、レート制限、リトライ、ローカルモデル向けのオプション(エンドポイント切替)をどのように統一的に扱うかが実装の肝になります。テスト面ではモックプロバイダを用いた単体テスト、JSONL の読み書き・分岐操作の検証、ツールコマンドの副作用テストが重要です。将来的にはシークレット管理(keyring)、設定 GUI/CLI、さらに豊富なスキルマーケットのような構成も考えられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- Cargo.lock: file
- Cargo.toml: file
- LICENSE: file
- README.md: file
…他 4 ファイル
まとめ
Rust 製の軽量なターミナル AI アシスタントで、拡張性と実用性のバランスが良いプロジェクトです。
リポジトリ情報:
- 名前: pi-rs
- 説明: 基于pi-mono,rust轻量化版本
- スター数: 8
- 言語: Rust
- URL: https://github.com/jshachm/pi-rs
- オーナー: jshachm
- アバター: https://avatars.githubusercontent.com/u/17266513?v=4
READMEの抜粋:
Pi - AI 编程助手
English | 中文
一款用 Rust 编写的终端 AI 编程助手,灵感来自 pi-coding-agent。提供交互式 TUI 界面,支持多种 LLM 提供商。
功能特性
- 多提供商支持:OpenAI、Anthropic、Google、Moonshot(月之暗面)、Ollama、Azure OpenAI、Mistral、Groq
- 工具系统:内置文件操作工具(read、write、edit、bash、grep、find、ls)
- 会话管理:基于 JSONL 的树形结构,支持分支
- 技能系统:加载自定义技能以定制 AI 行为
- 交互式 TUI:使用 ratat…