CLI操作ガイド

novelshaftコマンドをターミナルやスクリプトから利用します。Codex CLIとは別の、NovelShaft専用CLIです。

提供状況: 配布準備中。 一般向けダウンロードとインストール手順は未提供です。以下は提供開始後に使うコマンド仕様であり、現時点で利用開始できる手順ではありません。

利用条件とログイン

.NET 10、CLIパッケージ、NovelShaftアカウントが必要です。Windows・Linuxでローカル検証済みです。利用にはサーバー側でもCLI接続の提供が開始されている必要があります。

インストール後はloginでブラウザーを開き、「NovelShaft CLI」の接続を許可します。続いてtoolsで通信を確認します。statusは端末内のログイン保存状態だけを確認し、サーバーとの通信は検証しません。

novelshaft login
novelshaft tools

接続前に共通のアクセス範囲・制限を確認してください。

操作を調べて実行する

toolsで接続先の操作一覧、describeで入力スキーマを取得し、callで実行します。操作名は大文字・小文字を区別します。

novelshaft tools --search GetProject --json
novelshaft describe GetProjects
novelshaft call GetProjects

引数が必要な操作は、describeのpath・query・bodyなどに合わせてJSONファイルを作り、--input request.jsonで渡します。標準入力から読む場合は--input -を指定します。呼び出し結果はJSONで標準出力へ、診断は標準エラー出力へ返します。

編集を実行する場合

novelshaft describe GetProjectHistoryState
novelshaft describe CreateProjectNovelNode
novelshaft id
novelshaft call CreateProjectNovelNode --input request.json

編集の呼び出し前に対象作品の履歴状態を取得し、作品ID・必要な本文・idで発行した新規operationId・必要なexpectedProjectHistoryVersionをrequest.jsonに保存します。結果確認や同一要求の再送に備えて、このファイルを保持してください。

--project、--operation-id、--history-versionでも補えます。同じ項目をJSONとオプションの両方に指定するとエラーです。CLIは編集の自動再実行や、競合した版の自動上書きを行いません。

ファイルの受け渡し

各操作のdescribeで必要な対象ID・履歴版を確認し、入力ファイルに保存します。

novelshaft describe UploadProjectReferenceFile
novelshaft call UploadProjectReferenceFile --input upload-request.json --file notes.txt --content-type text/plain
novelshaft describe GetProjectReferenceFileRawContent
novelshaft call GetProjectReferenceFileRawContent --input download-request.json --download downloaded-notes.txt

--fileはローカルファイルを読み、body.fileへ設定します。JSON側のbody.fileとの二重指定は不要です。--downloadは指定した保存先に書き込み、既存ファイルがある場合は失敗します。サイズ上限は共通仕様を参照してください。 共通の制限

終了コードで結果を判定する

意味
0呼び出し要求が成功。非同期ジョブはbodyと状態取得操作で完了を別途確認します。
1接続・操作などの失敗。
2引数・入力形式の不正。
3本人確認待ち、実行待ち・実行中。
4結果不明。状態を確認してから再送を判断します。編集の送信後に中断した場合もこの値です。
130中断・タイムアウト。

confirmation_requiredは未実行です。本人がconfirmationUrlを開いて内容を確認し、返された要求IDを使ってGetMcpActionRequestで結果を取得します。終了コード3を成功扱いにしたり、元の操作を繰り返し発行したりしないでください。

ログイン情報の管理

ブラウザーが開かない場合はlogin --no-browserで表示されたURLを同じ端末で開きます。パスワードはログイン画面にだけ入力し、認証コードやトークンをターミナルへ貼り付けないでください。

認証情報は接続先ごとに、OSのLocalApplicationData配下のNovelShaft/cliへ保存します。Windowsは現在のユーザーのDPAPIで暗号化します。Linux/macOSは所有者限定の権限(ディレクトリ0700・ファイル0600)で保存しますが、内容は暗号化しません。共有アカウントや共有ホームには置かないでください。

logoutでトークンの失効を要求し、端末内のログイン情報を削除します。非ゼロで終了した場合は失効を確認できていません。アプリへの接続許可そのものはアカウント設定で解除します。 接続許可の解除

通常コマンドはログイン画面を自動起動しません。再ログインが必要な場合はloginを実行します。同じ接続先のコマンドはロックで競合を防ぐため、別コマンドの実行中と表示されたら完了を待ってください。オプションの構文はnovelshaft helpで確認できます。