sasacode

sasacode

プラグインで組み替えられる、
ターミナル向けの小さなコーディングエージェント

curl -fsSL https://sasanokusa.com/sasacode/install.sh | sh

macOS・Linux の単一バイナリ / Windows は WSL から / Apache-2.0

一小さなコア

一枚の葉から

コアにあるのは、エージェントループ、プロバイダー、4つのツール、TUI、セッション、権限確認だけ。

  • read
  • write
  • edit
  • bash

コアは約 3,600 行で、4,000 行を超えないように保っている。組み込みの4ツールも、プラグインと同じ公開 API で登録している。

二プラグイン

吊るして、組み替える

コアの外の振る舞いは、すべて公開のプラグイン API で足す。~/.sasacode/plugins/ に TypeScript のファイルを置けば、ビルドなしで読み込む。

MCP サーバーと Agent Skills(SKILL.md)はそのまま使える。使用量のグラフ(/usage)、ゴール(/goal)、長いコマンドのバックグラウンド実行なども同梱のプラグインで、plugins.disabled で外せる。

Plugin API 1.7.0 · npm i -D @sasacode/plugin-api

三モデル

どのモデルでも、同じ舟で

モデルは provider/model で指定する。キーのあるプロバイダーの一覧を取ってきて、/model から選べる。

  • anthropic/claude-opus-5Messages
  • openai/gpt-5.5Responses
  • ollama/gemma4:e4bローカル
  • openai-codex/gpt-5.5ChatGPT プラン

llama.cpp、vLLM、LM Studio などの自前のサーバーは sasacode endpoint add で足す。OpenAI 形式か Anthropic 形式かは自動で見分ける。

四修復

破れても、繕う

小さなモデルが崩したツール呼び出しは、検証の前に直す。末尾のカンマ、True、キー名(file → path)、型("20" → 20)、ツール名の typo。

候補が1つに絞れるときだけ直し、直したことはモデルに短く伝える。同じ文の繰り返しや、同じ操作の堂々巡りも止める。

五権限

判を押してから

ツールは実行する前に判定する。順番は deny → ask → allow → モード。

edits
作業ディレクトリ内の編集は通し、bash は確認(既定)
ask
読み取りも含めて、すべて確認
agent
危険かどうかをモデルに判定させる
auto
すべて許可。deny と ask のルールは効く

判断専用モデル Jev の判定を重ねることもできる(既定は無効)。パスはシンボリックリンクをたどった先で見る。クローンしたリポジトリのプラグインや接続先は、信頼すると答えるまで使わない。

六使い方

任せてみる

~/app $ sasacode -p "テストが落ちてる。直して"● read(src/stats.ts)● bash(bun test)● edit(src/stats.ts)● bash(bun test)平均の計算で要素数から 1 を引いていたのを直しました。✓ 12 pass · 0 fail~/app $

esc で中断、実行中の enter で次の指示を予約。終わると、使ったトークンと料金、再開用の sasacode -r <id> が残る。

結インストール

願いごとは、一行で

curl -fsSL https://sasanokusa.com/sasacode/install.sh | sh
  1. 初回起動で ~/.sasacode/.env ができる
  2. 使うプロバイダーのキーを書く
  3. sasacode で始める

バイナリは GitHub Releases の最新版から取得し、SHA256 を検証する。版を固定するには SASACODE_VERSION=v0.9.9、置き場所を変えるには SASACODE_INSTALL_DIR=… を付ける。

sasacode v0.9.9 · Apache-2.0