sente-c — C言語で書かれた
コーディングエージェント CLI
1バイナリで TUI・ワンショット実行・headless サーバ。依存は brew、設定は1ファイル。OpenAI 互換 API(teai.io 推奨)につなぐだけ。
alpha 公開中 — テスト 8/8 pass(Release / AddressSanitizer 両ビルド)
1. インストール(macOS)
curl -fsSL https://teai.io/sente-c/install.sh | sh
必要なもの: macOS + Homebrew。依存(cmake / libuv / yyjson / libwebsockets / notcurses / cmark-gfm 等)はスクリプトが入れます。ソースは GitHub。
2. APIキーを設定
- 1) teai.io でアカウント作成 → APIキー発行
- 2) シェルに設定:
export TEAI_API_KEY=<your key>
インストーラが作る ~/.config/sente/sente.jsonc は {env:TEAI_API_KEY} を起動時に展開します(キーはファイルに書かれません)。対話型 sente の設定と互換です(SENTE_BASE_URL / SENTE_API_KEY / SENTE_CONFIG による上書きも可)。
3. 使い方(全コマンド)
| コマンド | 用途 |
|---|---|
sente-c | TUI(対話モード)を起動 |
sente-c run "refactor this file" | ワンショット実行(引数がそのままプロンプト) |
sente-c run -m teai/teai/auto "..." | モデル指定で実行 |
sente-c serve --port 8080 | headless サーバ(下記「serve の詳細」) |
sente-c models [provider] | 利用可能なモデル一覧 |
sente-c agent list | エージェント一覧(add は未実装 → sente.jsonc を手編集) |
sente-c session | セッション情報の表示/作成 |
sente-c stats | トークン使用量・コストを表示 |
sente-c export [sessionID] | セッションを JSON エクスポート(既定 session.json) |
sente-c import <file> | セッション JSON をインポート |
sente-c version | バージョン表示 |
オプション
| フラグ | 説明 |
|---|---|
-h, --help | ヘルプ |
-v, --version | バージョン |
-m, --model <provider/model> | 使用モデル |
-c, --continue | 直前のセッションを継続 |
-s, --session <id> | 指定セッションを継続 |
--prompt <text> | プロンプト指定(run で args の代わり) |
--agent <id> | エージェント指定 |
--port / --hostname | serve の待受(既定 8080 / 127.0.0.1) |
4. serve(headless)の詳細
sente-c serve --port 8080 # GET /health → {"status":"ok"}(認証なし) # POST /run → text/plain(SENTE_SERVE_TOKEN 設定時のみ Bearer 必須)
SENTE_SERVE_TOKEN=abc123 sente-c serve --port 8080 & curl -X POST http://127.0.0.1:8080/run \ -H "Authorization: Bearer abc123" \ -d "src/main.c の TODO を全部列挙して"
SIGTERM/INT で graceful shutdown(処理中リクエスト完了後に終了)。CI や他ツールからの埋め込み向け。
5. 環境変数
| 変数 | 説明 |
|---|---|
TEAI_API_KEY | teai.io の API キー(config の {env:TEAI_API_KEY} が展開) |
SENTE_BASE_URL / SENTE_API_KEY / SENTE_MODEL | 設定を環境変数で上書き |
SENTE_CONFIG | 設定ファイルのパスを変更 |
SENTE_DB_PATH | セッション DB(既定 ~/.local/share/sente/sessions.db) |
SENTE_SERVE_TOKEN | 設定時 serve の /run を Bearer 認証必須に |
SENTE_PREFIX / SENTE_SRC | インストーラの配置先 |
SENTE_DEBUG=1 | デバッグ出力 |
6. セッションをまたいで作業する
sente-c session # セッションID確認 sente-c run "ログイン機能を追加して" sente-c -c run "さっきの続き、テストも書いて" # 直前の続き sente-c export # session.json に保存(共有・バックアップ用)
alpha の範囲 / 既知の制約
- macOS 専用(Linux は今後)
- エージェントループ+ツール(bash/read/write/edit/glob/grep/webfetch 他)は動作。TUI は最小実装
- 一部サブコマンド(
agent addなど)は未実装 → 設定ファイル手編集 - ローカル LLM(mlx_lm)にも OpenAI 互換で接続可
トラブルシューティング
- LLM 接続エラー →
TEAI_API_KEY未設定。teai.io で発行してexport TEAI_API_KEY=<key> - ビルド失敗 → brew の依存行を再実行(
sqliteはsqlite3ではなくsqlite) - run が失敗 →
SENTE_DEBUG=1付きで再実行して出力を issue へ - TUI が崩れる → alpha は最小実装。
runかserveを使う
FAQ
対話型 sente と何が違うの?
C 言語による再実装で、起動が速く依存が明確。同じ sente.jsonc を読みます。
料金は?
sente-c 本体はオープンソース無料。モデル呼び出しは teai.io のクレジット(または自分の OpenAI 互換エンドポイント)を使用。
壊れたら?
sente-c run が失敗する場合は SENTE_DEBUG=1 を付けて再実行し、issue に貼ってください。
30 秒で試す
インストール → APIキー → sente-c run "hello"
フィードバックは GitHub Issues へ — alpha 品質の改善に直結します