MCPcopy
hub / github.com/Narcooo/inkos

github.com/Narcooo/inkos @v1.6.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.6.1 ↗
3,547 symbols 10,094 edges 678 files 76 documented · 2%
README

InkOS Logo InkOS

Story Creation AI Agent 長編・短編小説、脚本、インタラクティブ影遊、IP コンテンツのための創作システム

npm version License: AGPL-3.0 GitHub stars npm downloads ClawHub Skill

<img alt="Kimi Open Source Friends" width="760" src="https://kimi-file.moonshot.cn/prod-chat-kimi/kfs/4/1/2026-06-05/1d8h69fudcmosb3pipls0">

中文 | English | 日本語


InkOS は、長編小説、独立短編、脚本、分镜、二次創作、番外、文体模倣、続き書き、インタラクティブ影遊プロジェクト、インタラクティブ世界を扱うローカル AI 創作システムです。Studio Chat、CLI、TUI は同じ action surface を共有し、相談、確認、生成、プレビュー、外部リサーチ、永続ファイル編集を一つの流れで扱えます。

💡 まず執筆エージェントに専門データの層を —— 小説を書くのに足りないのはモデルだけではなく、多くの場合は素材です。InkOS には 火花数据API(huohuaapi) の併用がおすすめ:従量課金の小説 / ウェブ小説向け創作データ API です。エージェントは書き始める前に、小説本文・章構成・人物設定・文体・創作メソッドなど出典付き素材を検索でき、プロンプトだけで「あらすじ」をでっち上げずに済みます。

v1.6.0 主要アップデート

v1.6.0 は、InkOS を開放世界 Play からさらにインタラクティブ影遊、脚本、分镜、runtime skill、出典付きリサーチへ拡張する更新です。

  • インタラクティブ影遊:分岐剧情、選択肢、変数 / フラグ、関係状態、エンディング、ノード画像、エクスポート可能なプロジェクトパッケージに対応。
  • Runtime Skill:内蔵 skill / プロジェクト内 skill により、専門ルール、prompt pack、context needs を注入できます。Chat は自動選択でき、ユーザーは @skill-id で強制指定できます。
  • 出典付き Web リサーチresearch_web が世界観、時代、職業、市場、事実確認の Markdown レポートを生成します。レポートは参考資料であり、それだけで canon や本文を書き換えません。
  • 脚本 / 分镜ワークフロー:Studio Chat から脚本、分镜、インタラクティブ影遊の作成を提案し、確認後にファイルとして保存して Studio 内で確認できます。
  • 安定性修正:章内の対象テキスト編集は軽い言い換えにも追従し、多章監査失敗で既存章索引を消さず、モデル / サービス切替後も active book を保持します。

この更新は v1.5 の方向性を継続します。重い操作は確認可能で、完了判定はモデルの文章ではなく tool result と実ファイルに基づき、物語コンテキストは無差別投入ではなく統治された形で使います。

InkOS インタラクティブ影遊ストーリーグラフ E2E スクリーンショット

InkOS Short 表紙例 InkOS Play ファンタジー開放世界例 InkOS Play 恋愛例 InkOS Play 探偵例

長編小説 — ブリーフから書籍を作成し、基礎設定、章の意図、コンテキスト、本文、レビュー、修正、状態更新まで管理します。長編でも制御を失わないように、コンテキストは protected / compressible に分けて扱います。

InkOS Short — Studio Chat と CLI から独立した短編パッケージを生成できます。完成本文、アウトライン記録、レビュー記録、あらすじ、セールスポイント、表紙プロンプト、表紙画像に対応します。

InkOS Play — 自然言語の世界契約から、開放世界や分岐型インタラクティブ物語を開始できます。時間の進み方、キャラクター agent、所持品、証拠、関係性、シーン状態、ビジュアルルール、自由行動、選択肢、画像生成に対応します。

インタラクティブ影遊 — アイデア、脚本、または小説素材から、分岐シーン、変数、エンディング、画像プロンプト、ノード画像、エクスポート可能なプロジェクトを生成します。

Studio Chat — 質問応答だけでなく、長編作成、Short、表紙生成、Play、永続テキスト編集を扱います。重いアクションは確認してから実行し、ツール結果がないのに成功したとは扱いません。

Runtime Skill とリサーチ.inkos/skills/ に専門 skill を追加し、@skill-id で強制使用できます。外部事実が必要な場合は出典付き Markdown リサーチレポートを生成できます。

モデル設定 — Studio はサービス設定、モデルルーティング、表紙サービス、kkaiapi / OpenRouter などのモデル集約入口、カスタム OpenAI-compatible エンドポイントに対応します。

InkOS Play アイテム画像例

英語ネイティブ小説執筆に対応! — 10種類の英語ジャンルプロファイルを内蔵し、専用のペーシングルール、疲労語リスト、監査ディメンションを搭載。--lang en を設定するだけですぐに始められます。

クイックスタート

インストール

npm i -g @actalk/inkos

OpenClaw 🦞 経由で使用

InkOS は OpenClaw Skill として公開されており、互換エージェント(Claude Code、OpenClaw など)から呼び出し可能です:

clawhub install inkos          # ClawHub からインストール

npm でインストール済み、またはリポジトリをクローン済みの場合、skills/SKILL.md が含まれているため、ClawHub の別途インストールなしで 🦞 が直接読み取れます。

インストール後、Claw は共有インタラクション入口を優先してください:

inkos interact --json --message "continue the current book, but keep the pacing tighter"

この入口はプロジェクト TUI と同じ会話実行カーネルを使います。現在の JSON 出力には assistant の返信と interaction session が含まれます。実際に完了したかどうかは、モデルの文章ではなく、ツール結果と生成ファイルで判断します。plan / compose / draft / audit / revise / write next などのアトミックコマンドも、スクリプトや上級者向けの下位ツールとして残っています。

設定

InkOS は設定経路を分けています。Studio は可視化されたサービス設定を使い、CLI / daemon / デプロイ環境は env オーバーライドを使えます。両者は暗黙に上書きしません。

方法1:Studio サービス設定(ローカル執筆に推奨)

inkos init my-novel
cd my-novel
inkos

Studio を開き、モデル設定へ進みます:

  1. Google Gemini、Moonshot、MiniMax、DeepSeek、kkaiapi、OpenRouter、またはカスタムエンドポイントを選択。
  2. API Key を貼り付けて接続をテスト。
  3. 利用可能なモデルを選んで保存。
  4. Studio Chat または書籍ページに戻って創作を開始。

Studio はプロジェクトのサービス設定と .inkos/secrets.json を使います。env が検出されてもヒントとして表示するだけで、Studio で選んだ service / model / base URL / API Key を上書きしません。

方法2:CLI / daemon / デプロイ環境の env 設定

inkos config set-global \
  --lang en \
  --provider <openai|anthropic|custom> \
  --base-url <APIエンドポイント> \
  --api-key <APIキー> \
  --model <モデル名>

# provider: openai / anthropic / custom(OpenAI互換プロキシにはcustomを使用)
# base-url: APIプロバイダーURL
# api-key: APIキー
# model: モデル名

--lang en は CLI / daemon 実行時のデフォルト執筆言語を英語に設定します。~/.inkos/.env に保存されます。

グローバル ~/.inkos/.env またはプロジェクト .env を手動で編集することもできます:

# 必須
INKOS_LLM_PROVIDER=                               # openai / anthropic / custom(OpenAI互換APIにはcustomを使用)
INKOS_LLM_BASE_URL=                               # APIエンドポイント
INKOS_LLM_API_KEY=                                 # APIキー
INKOS_LLM_MODEL=                                   # モデル名

# 言語(グローバル設定またはジャンルのデフォルトに準拠)
# INKOS_DEFAULT_LANGUAGE=en                        # en または zh

# オプション
# INKOS_LLM_TEMPERATURE=0.7                       # Temperature
# INKOS_LLM_THINKING_BUDGET=0                      # Anthropic拡張思考バジェット

CLI の解決順序は、Studio/project サービス設定、サービス secrets、グローバル env、プロジェクト env、プロセス env、CLI フラグです。つまり CLI は Studio で設定したサービスを再利用でき、env やコマンドライン引数は明示的な上書きとして扱われます。

方法3:マルチモデルルーティング(オプション)

異なるエージェントに異なるモデルを割り当て、品質とコストのバランスを調整:

# 異なるエージェントに異なるモデル/プロバイダーを割り当て
inkos config set-model writer <model> --provider <provider> --base-url <url> --api-key-env <ENV_VAR>
inkos config set-model auditor <model> --provider <provider>
inkos config show-models        # 現在のルーティングを表示

明示的なオーバーライドがないエージェントはグローバルモデルにフォールバックします。

現在のインタラクション入口

Studio Chat + CLI + TUI は同じ実行面を共有します

  • Studio Chat:相談、書籍作成、Short、表紙、Play、永続ファイル編集を一つのチャット入口から扱えます。重い操作は確認カードを表示します。
  • 創作入口:長編、短編、二次創作、番外、文体模倣、続き書き、分岐インタラクション、開放世界を Studio の上部入口から開始できます。
  • TUI ダッシュボードinkos tui でキーボード中心のフルスクリーン端末 UI を開けます。
  • 外部 Agent 入口inkos interact --json --message "..." は OpenClaw など外部 agent 向けの構造化入口です。
  • アトミックコマンドplan / compose / draft / audit / revise / write next はスクリプトや上級者向けに残っています。

最初の本を書く

英語ジャンルプロファイルではデフォルトで英語が使用されます。ジャンルを選んで始めましょう:

inkos book create --title "The Last Delver" --genre litrpg     # LitRPG小説(デフォルトで英語)
inkos write next my-book          # 次の章を執筆(フルパイプライン:draft → audit → revise)
inkos status                      # ステータスを確認
inkos review list my-book         # 下書きをレビュー
inkos review approve-all my-book  # 一括承認
inkos export my-book --format epub  # EPUB形式でエクスポート(スマホ/Kindleで読める)

言語はジャンルごとにデフォルトで設定されます。--lang en または --lang zh で明示的に上書き可能です。inkos genre list で利用可能なすべてのジャンルとデフォルト言語を確認できます。

完成短編を書く

Studio のチャットでは、次のように依頼できます:

現代の結婚リバーサルを題材に、主人公が証拠で逆転する12章の短編を書いて。

CLI からも実行できます:

inkos short run \
  --direction "modern short fiction marriage reversal evidence-driven heroine" \
  --chapters 12 \
  --chars 1000

生成物は shorts/<story-name>/final/ に保存され、full.mdsales-package.mdcover-prompt.md、表紙生成が設定済みの場合は cover.png が含まれます。

表紙だけを作る

既存タイトルやあらすじに対して表紙だけを作る場合は、短編本文を再生成せず、Studio チャットで直接依頼できます:

「彼が後悔した離婚届」の短編表紙を作って。現代都市、強い逆転感。

表紙ツールは covers/<title>/cover-prompt.mdcovers/<title>/cover.png を生成します。表紙サービス未設定の場合は、先に Studio のモデル設定で表紙サービスと API Key を設定してください。

生成後もチャットで表紙プロンプトを調整できます。例:「人物をもっと近く、タイトル文字を大きく、冷たい笑みにして」。InkOS は新しい指示を coverPrompt として渡し、cover-prompt.md を更新して表紙を再生成します。本文を書き直す必要はありません。

InkOS Short 表紙例 InkOS Play 開放世界例 InkOS Play 探偵例

開放世界 / 分岐型インタラクションを始める

Studio Chat で Open World または Branching Interactive を選び、自然言語で世界を説明します:

Warcraft 風の国境見張り塔を舞台にした開放世界を作って。時間は固定ターンではなく、巡回は1時間、訓練は数日かかる。装備には希少感があるが、数値表は使わず、素材・光沢・雰囲気で表現する。

InkOS は世界、キャラクター、アイテム、証拠、関係性、現在シーン、候補アクションを生成します。Open World は自由入力の行動に対応し、Branching Interactive はクリック可能な選択肢を提示します。画像生成を設定すると、キャラクター、アイテム、証拠、シーン画像をチャットの流れの中で表示できます。


英語ジャンルプロファイル

InkOS には10種類の英語ネイティブジャンルプロファイルが同梱されています。各プロファイルにはジャンル固有のルール、ペーシング、疲労語検出、監査ディメンションが含まれます:

ジャンル 主要メカニクス
LitRPG 数値システム、パワースケーリング、ステータス成長
プログレッションファンタジー パワースケーリング、数値システム不要
異世界転生(Isekai) 時代考証、世界観の対比、文化的な異邦人体験
修行もの(Cultivation) パワースケーリング、境地の進行
システムアポカリプス 数値システム、サバイバルメカニクス
ダンジョンコア 数値システム、パワースケーリング、領地管理
ロマンタジー 感情アーク、二重視点ペーシング
SF 時代考証、技術の一貫性
タワークライマー 数値システム、階層進行
コージーファンタジー ローステークスペーシング、コンフォートファーストのトーン

バイリンガルクリエイター向けに、5種類の中国語Web小説ジャンル(玄幻、仙侠、都市、ホラー、その他)にも対応しています。

すべてのジャンルに 疲労語リスト が含まれています(例:LitRPGの場合 "delve"、"tapestry"、"testament"、"intricate"、"pivotal")。監査エージェントがこれらを自動的にフラグ付けするため、他のAI生成小説と同じような文体になるのを防ぎます。


主な機能

Studio Chat + Action Surface

Studio Chat は単なる Q&A ではありません。長編作成、Short、表紙生成、Play 起動、永続テキストファイル編集を扱い、重いアクションの前に確認を出します。普通の相談は普通に回答し、明確な創作アクションだけがツール実行になります。

InkOS Play:開放世界と分岐インタラクション

Play は、キャラクター、場所、アイテム、証拠、関係性、時間、現在シーン、HUD、画像を含む持続的な世界状態を管理します。固定 RPG システムではありません。修仙世界なら希少度や境界、恋愛ものなら感情段階、探偵ものなら証拠のライフサイクルを、ユーザーの世界契約として状態に保存できます。

37次元監査 + 脱AI化

継続性監査エージェントがすべての下書きを37の次元でチェックします:キャラクターの記憶、リソースの継続性、フック回収、アウトライン準拠、ナラティブペーシング、感情アークなど。内蔵のAI痕跡検出が「LLMの声」を自動的に捕捉 — 使いすぎの単語、単調な文型、過度な要約。デフォルトの長編執筆チェーンでは自動修正は最大1回まで行い、残った重大問題は結果に残して人間レビューまたは後続コマンドに渡します。

脱AI化ルールはWriterエージェントのプロンプトに組み込まれています:疲労語リスト、禁止パターン、スタイルフィンガープリント注入 — ソースレベルでAI痕跡を削減。revise --mode anti-detect で既存の章に対して専用の脱AI検出リライトを実行できます。

文体クローニング

inkos style analyze で参考テキストを分析し、統計的なフィンガープリント(文長分布、語頻度パターン、リズムプロファイル)とLLM可読のスタイルガイドを抽出。inkos style import でこのフィンガープリントを書籍にインジェクト — 以降のすべての章がその文体を採用し、修正エージェントが文体に対して監査を行います。

クリエイティブブリーフ

inkos book create --brief my-ideas.md — ブレインストーミングノート、世界観設定書、キャラクターシートを渡せます。アーキテクトエージェントがゼロから生成するのではなく、ブリーフを基に構築(story_bible.mdbook_rules.md を生成)し、ブリーフを story/author_intent.md に永続化して、初期化後も書籍の長期的な意図が失われないようにします。

入力ガバナンスコントロールサーフェス

すべての書籍に2つの長期保存型Markdownコントロールドキュメントが付属:

  • story/author_intent.md:この書籍が長期的にどうあるべきか
  • story/current_focus.md:次の1〜3章で注意を引き戻すべき事柄

執筆前に以下を実行できます:

inkos plan chapter my-book --context "まずメンターとの対立に注意を引き戻す"
inkos compose chapter my-book

これにより story/runtime/chapter-XXXX.intent.mdcontext.jsonrule-stack.yamltrace.json が生成されます。intent.md は人間が読める契約書で、その他は実行/デバッグ用のアーティファクトです。plan は LLM を呼び出して章の意図を作成します。compose はローカルドキュメントとステートのコンパイルのみを行うため、APIキーの設定完了前でも実行できます。

文字数管理

draftwrite nextrevise は同じ保守的な文字数ガバナーを共有:

  • --words は正確なハード制限ではなく、目標バンドを設定
  • 中国語の章はデフォルトで zh_chars、英語の章はデフォルトで en_words を使用
  • 章がソフトバンドから逸脱した場合、InkOS はプロを乱暴にカットするのではなく、1回の補正正規化パス(圧縮または拡張)を実行する場合があります
  • 1回のパス後もハードレンジを外れる場合、InkOS は保存しますが、結果とチャプターインデックスに可視的な文字数警告とテレメトリを表示

続編執筆

inkos import chapters で既存の小説テキストをインポートし、構造化状態、章サマリー、フック、キャラクター関係、人間が読める Markdown プロジェクションを自動で再構築。Chapter N とカスタム分割パターンに対応し、再開可能なインポートをサポート。インポート後、inkos write next で物語を継続できます。

二次創作

inkos fanfic init --from source.txt --mode canon で原作素材から二次創作書籍を作成。4つのモード:canon(忠実な続編)、au(パラレルワールド)、ooc(キャラクター崩壊)、cp(カップリング重視)。原作インポーター、二次創作専用の監査ディメンション、設定の一貫性を保つ情報境界管理を搭載。

マルチモデルルーティング

異なるエージェントに異なるモデルとプロバイダーを使用可能。WriterにClaude(より強力なクリエイティブ)、AuditorにGPT-4o(安価で高速)、Radarにローカルモデル(コストゼロ)。inkos config set-model でエージェントごとに設定可能;未設定のエージェントはグローバルモデルにフォールバック。

デーモンモード + 通知

inkos up で自律的なバックグラウンドループを開始し、スケジュールに従って章を執筆。処理可能な非重要問題は自動で進め、人間の判断が必要な場合はレビュー可能な結果を残して一時停止します。TelegramとWebhook(HMAC-SHA256署名 + イベントフィルタリング)による通知。inkos.log(JSON Lines)にログ出力、-q でクワイエットモード。

ローカルモデル互換性

任意のOpenAI互換エンドポイント(--provider custom)に対応。ストリーム自動フォールバック — SSEがサポートされていない場合、InkOS は自動的に同期モードでリトライ。フォールバックパーサーが小型モデルの非標準出力を処理し、ストリーム中断時には部分コンテンツリカバリが作動。

信頼性

章ごとに自動ステートスナップショットを作成 — inkos write rewrite で任意の章を執筆前の状態にロールバック可能。Writerは執筆前チェックリスト(コンテキストスコープ、リソース、保留中のフック、リスク)と執筆後決済テーブルを出力し、Auditorが両方をクロスバリデーション。ファイルロックにより同時書き込みを防止。執筆後バリデーターにはクロスチャプター反復検出と十数のハードルールによる自動スポット修正を搭載。

フックシステムはZodスキーマバリデーションを使用 — lastAdvancedChapter は整数、status は open/progressing/deferred/resolved のみ。LLMからのJSONデルタは applyRuntimeStateDelta(イミュータブル更新)と validateRuntimeState(構造チェック)を経て永続化。破損データは伝播されず、拒否されます。

モデル出力上限は provider bank のモデルカードで管理されます。llm.extra の予約キー(max_tokens、temperature、model、messages、stream など)は自動的に除去され、コアリクエストパラメータの意図しない上書きを防止します。


仕組み

InkOS には二つの主要な実行線があります。長編 / 短編の生産線は納品可能な本文を作り、Play は持続的なインタラクティブ世界を進めます。どちらも Studio Chat、モデル設定、確認アクション、成果物プレビューを共有しますが、状態モデルは異なります。

システム構成

長編の各章は複数のエージェントが順次処理します:

章生産パイプライン

| エージ

Extension points exported contracts — how you extend this code

RadarSource (Interface)
(no doc) [6 implementers]
packages/core/src/agents/radar-source.ts
ServiceQuickLink (Interface)
(no doc)
packages/studio/src/components/ServiceQuickLinks.tsx
SqliteMemorySupportResult (Interface)
(no doc)
packages/cli/src/runtime-requirements.ts
PlayReducerDB (Interface)
(no doc) [1 implementers]
packages/core/src/play/play-reducer.ts
ChatMessage (Interface)
(no doc)
packages/studio/src/components/chat-utils.ts
NodeRuntimePinStatus (Interface)
(no doc)
packages/cli/src/runtime-requirements.ts
LongSpanFatigueIssue (Interface)
(no doc)
packages/core/src/utils/long-span-fatigue.ts
SharedSessionMeta (Interface)
(no doc)
packages/studio/src/components/chat-utils.ts

Core symbols most depended-on inside this repo

t
called by 350
packages/studio/src/hooks/use-i18n.ts
log
called by 332
packages/cli/src/utils.ts
replace
called by 300
packages/core/src/play/play-file-db.ts
bookDir
called by 258
packages/core/src/state/manager.ts
get
called by 241
packages/studio/src/api/lib/run-store.ts
createStudioServer
called by 158
packages/studio/src/api/server.ts
cn
called by 120
packages/studio/src/lib/utils.ts
appendTranscriptEvent
called by 108
packages/core/src/interaction/session-transcript.ts

Shape

Function 2,330
Method 545
Interface 527
Class 145

Languages

TypeScript100%

Modules by API surface

packages/studio/src/api/server.ts128 symbols
packages/core/src/pipeline/runner.ts104 symbols
packages/core/src/llm/provider.ts61 symbols
packages/core/src/agents/short-fiction.ts61 symbols
packages/core/src/agent/agent-tools.ts54 symbols
packages/studio/src/components/ai-elements/prompt-input.tsx51 symbols
packages/core/src/agents/composer.ts46 symbols
packages/core/src/pipeline/short-fiction-runner.ts43 symbols
packages/core/src/agents/planner.ts40 symbols
packages/core/src/agent/agent-session.ts40 symbols
packages/core/src/play/play-agents.ts39 symbols
packages/core/src/agents/script-storyboard.ts39 symbols

Dependencies from manifests, versioned

@actalk/inkos-coreworkspace:* · 1×
@actalk/inkos-studioworkspace:* · 1×
@base-ui/react1.3.0 · 1×
@fontsource-variable/geist5.2.8 · 1×
@hono/node-server1.13.0 · 1×
@mariozechner/pi-agent-core0.67.1 · 1×
@mariozechner/pi-ai0.67.1 · 1×
@playwright/test1.61.0 · 1×
@radix-ui/react-use-controllable-state1.2.2 · 1×
@sinclair/typebox0.34.49 · 1×
@streamdown/cjk1.0.3 · 1×
@streamdown/code1.1.1 · 1×

For agents

$ claude mcp add inkos \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact