coscli
coscli は Cosense (旧 Scrapbox) 向けの AI エージェント親和的 CLI ツール。バイナリ名は cos。
ターミナル・スクリプト・CI・AIエージェントから Cosense のページを操作できる。
Cosenseユーザーとして嬉しいこと
ページをターミナルから操作できる
cos page list --project myproject でページ一覧を取得
cos page new でページを作成、cos page append で末尾に追記
cos page watch でページ更新をリアルタイム監視(tail -f 感覚)
ブラウザを開かずにページの操作が一通りできるのが地味に便利。
Markdown ↔ Scrapbox 記法を相互変換できる
cos convert --from=md --to=scrapbox --from-file input.md
書き慣れたMarkdownをそのままCosenseに持ち込める。
逆にCosenseの内容をMarkdownに書き出すことも。
ローカルファイルと同期できる
cos sync pull --all --dir ./pages で全ページをローカルに落とす
cos sync push でローカルの変更をアップロード
お気に入りのテキストエディタでCosenseを編集したい人に刺さる機能。
AIエージェントとして嬉しいこと
Cosenseをナレッジベースとして活用できる
coscliを使うと、Cosenseに蓄積した知識をエージェントが直接読み書きできる。
「調べる → Cosenseで確認 → 結果を記録」というループをエージェントが自律的に回せる。
Smart Context でリンク先の文脈を一括取得できる
cos page context "起点ページ" --project myproject
Cosenseのページはリンクで有機的につながっている。
page context はリンク先ページの本文テキストをまとめて返してくれるので、関連する文脈を一括でLLMに渡せる。
「このページと周辺知識」をセットで入手できるのはエージェントにとって強力。RAGっぽく使える。
JSON出力 + セレクタでトークンを節約できる
cos page list --json --results-only --select 'pages[].title'
--json --results-only --select の組み合わせで必要なデータだけをミニマルに取得。
エージェントが不要なデータに惑わされず、トークン消費も最小限に抑えられる。
Sandboxでコマンドを安全に制限できる
cos --enable-commands "page.list,page.get,page.text,search" page list
どのコマンドを使っていいかを明示的に制御できる。
読み取り専用に制限したエージェントを作るのが簡単。違反時は exit 7 で明確に検知できる。
ここの引数自体をエージェントが書き換えるというのはできないようにできるんですか?bsahd.icon
できなさそう、denyで拒否しつつ任意のコマンドだけ通すみたいなやつもあんま現実的でない気がするmtane0412.icon
skillで安全性を高めるときには使えるが、保証はできなそう
機械可読な終了コードでエラーハンドリングが明確
cos exit-codes --json で全種類の終了コードを取得
exit 2 なら再認証、exit 4 なら新規作成、exit 6 なら pull してリトライ、と状態に応じた自動回復が書きやすい。
--dry-run で安全に確認してから実行
cos page edit "タイトル" --from-file content.md --dry-run
書き込み系コマンドはすべて --dry-run に対応。
エージェントが本番を間違って変更する事故を防げる。
主なコマンド
table:コマンド一覧
カテゴリ コマンド 概要
ページ取得 cos page list ページ一覧取得
ページ取得 cos page get ページ詳細取得
ページ取得 cos page text ページ本文テキスト取得
ページ取得 cos page code コードブロック取得
ページ取得 cos page url ページURL生成(API不要)
ページ取得 cos page icon ページアイコンURL生成(API不要)
ページ取得 cos page context Smart Context(リンク先本文)取得
ページ書き込み cos page new ページ新規作成
ページ書き込み cos page edit ページ全置換(楽観ロックあり)
ページ書き込み cos page append ページ末尾に追記
ページ書き込み cos page prepend ページ先頭(タイトル直後)に挿入
ページ書き込み cos page insert 指定行の後ろに挿入
行編集 cos page line get 行・範囲取得
行編集 cos page line replace 行・範囲を置換
行編集 cos page line delete 行・範囲を削除
ページ管理 cos page rename ページタイトル変更
ページ管理 cos page pin / cos page unpin ピン留め / 解除
ページ管理 cos page delete ページを削除
ページ監視 cos page watch ページ更新をリアルタイム監視
プロジェクト cos project list プロジェクト一覧取得
プロジェクト cos project info プロジェクト詳細取得
プロジェクト cos project graph リンクグラフexport
検索 cos search ページ検索
同期 cos sync pull Cosense → ローカルへpull
同期 cos sync push ローカル → Cosenseへpush
同期 cos sync diff ローカルとの差分表示
認証 cos auth login / cos auth logout ログイン / ログアウト
認証 cos auth whoami 現在の認証ユーザー確認
設定 cos config get / cos config set 設定値の取得・保存
設定 cos config path 設定ファイルのパス表示
変換 cos convert Scrapbox記法 ↔ Markdown 変換
サーバー cos serve --rest ローカルRESTプロキシサーバー起動
メタ情報 cos exit-codes 終了コード一覧出力
メタ情報 cos schema コマンドスキーマ出力
メタ情報 cos notation Cosense記法ガイド出力
インストール
brew tap mtane0412/coscli
brew install coscli
hr.icon
coscli使ってclaude codeに書かせたmtane0412.icon
https://gyazo.com/662661d0f9b1fd1d4fdb4460b31de611
https://gyazo.com/9d71a73820ad58772db554f7bbed34e2
書き込むときに全部流し込んでしまったので一部消えた
page editは全部差し替えるので事前に取得するようにskillにしといたほうが良さげ
書き込み系を行うときにこのスキルを発動させたほうが良さそう
ようこそ!nishio.iconはるひ.icontakker.icon
いかしてるcaki.icontaktamur.iconnomadoor.icon
活用事例
thx! バグ調査しますmtane0412.icon
Claude.iconに見てもらい2はスクリプト起因と判断して1と3がissue化されたmtane0412.icon
ありがとうございます!taktamur.icon
v0.3.1で対応mtane0412.icon
cos page editがページ内全部置換で実現しているのが怖いmtane0412.icon
行単位の挿入は用意されているものの、Cosenseユーザーにとって直感的な行単位の編集がコマンドで用意されていないのが問題
cos page line系のコマンドを追加した
行編集のイメージに近い挙動
editではなくこちらをメインに指示してあげるといい感じ
editの方は楽観ロック保護追加で事故を防ぐようにした
井戸端のようなプロジェクトを考えると悲観ロックのほうが良いのではという気も
ドキュメントをCosenseに書かせたmtane0412.icon
installationは今のところbrew経由のinstallかバイナリのdownloadだけだけど、bun経由でinstallすることはできないかなtakker.icon
あとでやってみる