Skip to main content

Tsumugi AI Agent — Claude Code-like coding assistant

Project description

Tsumugi

Claude Code ライクな AI コーディングエージェント。Python 製、ターミナルで動作する。

特徴

  • マルチプロバイダー — Anthropic Claude / OpenAI GPT / Google Gemini / Ollama 等に対応
  • ツール内蔵 — ファイル読み書き、シェル実行、Glob/Grep 検索、Web 取得など 8 種
  • パーミッション管理 — READ は自動許可、WRITE / EXECUTE は確認プロンプト付き
  • TSUMUGI.md — プロジェクトごとの指示をシステムプロンプトに自動結合 (CLAUDE.md と同じ仕組み)
  • MEMORY.md — プロジェクト別の永続メモリ。セッションを跨いで知見を蓄積
  • プランモード/plan で READ のみ実行可能なモードに切替。コード調査と実装計画の設計に集中できる
  • ペルソナ搭載 — 組み込みペルソナ「つむぎ」が会話をサポート
  • プラグイン — カスタムツールを Python ファイルで追加可能
  • クロスプラットフォーム — Windows / Linux / macOS で動作。Python 3.10+

インストール

pip install tsumugi-agent

開発モードでインストールする場合:

git clone https://github.com/space-musicacct/tsumugi.git
cd tsumugi
pip install -e .

クイックスタート

1. 設定ファイルを作成

~/.tsumugi/config.json:

{
  "provider": "anthropic",
  "user_name": "your_name",
  "anthropic_api_key": "sk-ant-api03-..."
}

user_name はつむぎがユーザーを呼ぶ名前に使われる (例: space → 「space先輩」)。未設定の場合は「user先輩」。

プロジェクトルートの config.example.json にサンプルあり。

2. 起動

tsumugi

python -m tsumugi でも起動可能。

対応プロバイダー

サービス 起動コマンド 備考
Anthropic Claude tsumugi デフォルト。anthropic_api_key が必要
OpenAI GPT tsumugi --provider openai --model gpt-4o openai_api_key が必要
Google Gemini tsumugi --provider openai --base-url https://generativelanguage.googleapis.com/v1beta/openai/ --model gemini-2.0-flash OpenAI互換エンドポイント経由
Ollama (ローカル LLM) tsumugi --provider openai --base-url http://localhost:11434/v1 --model llama3.1 API キー不要
その他 OpenAI互換 tsumugi --provider openai --base-url <URL> --model <MODEL> Groq, Together AI 等

--provider openai + --base-url の組み合わせで、OpenAI互換 API を提供するサービスなら何でも接続可能。 ただしツール呼び出し (function calling) の対応状況はサービスによって異なる。会話のみであれば基本的にどれでも動作する。

ツール一覧

ツール 権限 説明
read_file READ ファイル読み取り (行番号付き、offset / limit 対応)
glob_search READ Glob パターンでファイル検索 (更新日時順)
grep_search READ 正規表現でファイル内容検索 (Python re モジュール、クロスプラットフォーム)
list_directory READ ディレクトリ内容一覧 (ファイルサイズ付き)
web_fetch READ URL からコンテンツ取得 (HTML→テキスト変換)
write_file WRITE ファイル作成・上書き (親ディレクトリ自動作成)
edit_file WRITE 文字列置換による編集 (replace_all オプション)
shell EXECUTE シェルコマンド実行 (タイムアウト対応)

REPL コマンド

コマンド 説明
/help コマンド一覧を表示
/clear 会話履歴をクリア
/context コンテキスト使用量 (トークン推定) を表示
/compact [n] 古いメッセージを要約して圧縮 (直近 n 件を保持, default: 6)
/model [name] 現在のモデルを表示、または変更
/plan [on|off] プランモードの切り替え (READ のみ実行、WRITE/EXECUTE はシミュレーション)
/provider [name] 現在のプロバイダーを表示、または切り替え
/reload TSUMUGI.md を再読み込み
exit / /quit 終了

複数行入力: Alt+Enter で改行を挿入、Enter で送信。

パーミッション

レベル 挙動
READ 自動許可
WRITE 実行前に確認プロンプト
EXECUTE 実行前に確認プロンプト

確認プロンプトでの入力:

入力 動作
y 今回のみ許可
n 拒否
a このツールをセッション内で常時許可
p 永続的に許可 (~/.tsumugi/permissions.json に保存)

TSUMUGI.md

カレントディレクトリから親を辿って TSUMUGI.md を探索し、見つかったものをすべてシステムプロンプトに結合する。Claude Code の CLAUDE.md と同じ仕組み。

~/projects/myapp/TSUMUGI.md   ← プロジェクト固有の指示 (後に結合 = 優先)
~/TSUMUGI.md                  ← グローバルな指示 (先に結合)

セッション中に編集した場合は /reload コマンドで再読み込み可能。

MEMORY.md

プロジェクト別の永続メモリ機能。セッションを跨いで知見やパターンを蓄積できる。

  • 保存場所: ~/.tsumugi/projects/<project-id>/memory/MEMORY.md
  • プロジェクト ID はカレントディレクトリのパスから自動生成される
  • セッション開始時に自動で読み込まれ、システムプロンプトに含まれる
  • エージェントが作業中に学んだことを書き込むことで、次回以降のセッションに活かせる

プラグイン

~/.tsumugi/plugins/ または ./tsumugi_plugins/ に Python ファイルを置くことで、カスタムツールを追加できる。

# ~/.tsumugi/plugins/my_tool.py
from tsumugi.tools.base import BaseTool, PermissionLevel, ToolSpec

class MyTool(BaseTool):
    def spec(self):
        return ToolSpec(
            name="my_tool",
            description="Does something useful",
            parameters={"type": "object", "properties": {}, "required": []},
            permission=PermissionLevel.READ,
        )

    def execute(self, **kwargs):
        return "Hello from my plugin!"

設定リファレンス

優先順位

~/.tsumugi/config.json < 環境変数 < CLI引数

設定一覧

設定 config.json 環境変数 CLI引数 デフォルト
プロバイダー provider TSUMUGI_PROVIDER --provider anthropic
モデル anthropic_model / openai_model TSUMUGI_MODEL --model claude-sonnet-4-20250514
API キー anthropic_api_key / openai_api_key ANTHROPIC_API_KEY / OPENAI_API_KEY --api-key (なし)
ベース URL openai_base_url TSUMUGI_BASE_URL --base-url (なし)
最大トークン max_tokens TSUMUGI_MAX_TOKENS --max-tokens 8192
ユーザー名 user_name USER_NAME user

config.json の例

{
  "provider": "anthropic",
  "user_name": "space",
  "anthropic_api_key": "sk-ant-...",
  "anthropic_model": "claude-sonnet-4-20250514",
  "openai_api_key": "sk-...",
  "openai_model": "gpt-4o",
  "openai_base_url": null,
  "max_tokens": 8192
}

設定ファイルのパス:

  • Windows: C:\Users\<username>\.tsumugi\config.json
  • Linux / macOS: ~/.tsumugi/config.json

複数プロバイダーの API キーを同時に設定でき、セッション中に /provider コマンドで切り替え可能。

API キーは環境変数でも設定できる:

export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...

開発

git clone https://github.com/space-musicacct/tsumugi.git
cd tsumugi
pip install -e ".[dev]"
pytest

ライセンス

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsumugi_agent-0.3.0.tar.gz (34.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsumugi_agent-0.3.0-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file tsumugi_agent-0.3.0.tar.gz.

File metadata

  • Download URL: tsumugi_agent-0.3.0.tar.gz
  • Upload date:
  • Size: 34.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tsumugi_agent-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2a3e147afe60767f70975b8ede7cec28e2b46d4512a3942945fa18be20fdd697
MD5 e15f09a19330dcb3cd388f0e2b6667d8
BLAKE2b-256 33ef8b051ed96f36538fd0b4fdcca34924c2d42565c0e2ba477c15adf7fc9486

See more details on using hashes here.

File details

Details for the file tsumugi_agent-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: tsumugi_agent-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 42.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tsumugi_agent-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14adf1dfc8ff7b8a9679b6bef03554738334ce584fcd0118d56b5959e72f2739
MD5 62d6f3d99522be9ac6f8704dbf9bd804
BLAKE2b-256 71e72c478c5b3cf634f08be8cbbf2f351bf859d4d2979f93e6ddf7dcf8ff0275

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page