Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>統合小説執筆環境New to Visual Studio Code? Get it now.
統合小説執筆環境

統合小説執筆環境

nonahisa

|
20 installs
| (0) | Free
書くこと以外、引き受けます。プロットづくり・設定資料の抽出・校正・投稿の準備・EPUB/PDFでの出版までを引き受けるVSCode拡張機能で、AIは提案するだけで原稿は書き換えません(無料の手元AIだけでも使えます)。※現在テスト中です。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

統合小説執筆環境(VSCode拡張機能)

書くこと以外、引き受けます。 プロットづくり・設定資料づくり・見直し・投稿の準備・電子書籍とPDFでの出版までを、原稿に手を触れないAIと一緒に片づけるVS Code拡張機能です。

すでに投稿サイトで書いている方は、バックアップを渡すところから始められます(カクヨム・小説家になろう・アルファポリス)。話ごとに切り分けて登録するまで、打鍵はゼロです。

※現在テスト中です。 動作の確認(実機テスト)が済んでいない機能が含まれます。大切な原稿は、必ずバックアップ(GitHub同期など)を取ったうえでお使いください。

このリポジトリの版:0.95.0(Marketplace に出ている版は 0.94.0)。Marketplace に出ている版はこれより遅れることがあります。

  • 原稿を書き換えるAIはいません。提案を適用するのは、いつもあなたです。
  • 手元AI(Ollama / LM Studio)なら無料で使えます。クラウドAIも、鍵を入れれば機能ごとに選べます。
  • 原稿がどこへ出るかは、作品ごとにあなたが決めます。外部AI(MCP)は既定で拒否、GitHubへ出るのは同期を設定した作品だけ、外部AIに読まれた記録は編集履歴に残ります。
  • 原稿はただのテキスト/Markdownファイルです。他のエディタとも共存できます。

できること

場面 できること
始める プロットから/本文から新規作品を作る。投稿サイトのバックアップから取り込む(カクヨム・小説家になろう・アルファポリス)。既存のフォルダーやGitHubの作品を登録する
書く 文字数の自動集計、原稿用紙換算、執筆量の記録とグラフ、縦書き/横書きの原稿エディタ、ルビ・傍点、用語の色分け、シーンメモ、読み上げ
段取りを組む 公募の締切・自費出版や出版社の発売日・WEB連載の開始日から作業を逆算し、全作品を縦が時間・横が作品の1枚に並べる。機器間で同期する
資料をためる 本文から登場人物・能力・組織・場所・世界観を抽出する。名前の点検と付け替え、人物相関図、年表
整える 本文からプロットを起こす。各話あらすじ・作品紹介文・キャッチコピー・更新告知文。感情曲線
直す 誤字脱字・表記ゆれ・推敲・矛盾・プロット逸脱・伏線の検知。指摘は1件ずつ確認して適用する
相談する 開いている画面についてAIに日本語で質問する。この拡張機能の使い方も聞ける。あなた自身が「読者として」何を求めるかを覚え、作品の読者との違いを知らせる
持ち運ぶ GitHubで複数の環境を行き来する。1つのリポジトリ(書庫)に複数の作品を置ける
投稿する 投稿サイトごとのルビ・傍点記法へ変換してコピーする。投稿状況・ランキングの記録。読者の反応を、そのサイトの言葉で記録する(PV・お気に入り・評価・話ごとの反応)
出版する EPUBエディター(表紙・目次・挿絵・奥付)、印刷用のPDF出力
書き出す 設定資料集のMarkdown(提供先別にも)、IME辞書(Google日本語入力・MS-IME・ATOK)

インストール

VS Codeの拡張機能ビュー(Ctrl + Shift + X)で「統合小説執筆環境」を検索してインストールしてください。更新はVS Codeが自動で行います。対応バージョンはVS Code 1.90.0以降です。

code --install-extension nonahisa.novel-ai-assistant

再読み込みすると、左端のアクティビティバーにキーボードと万年筆のアイコンが追加されます。

VSIXファイルから入れる(配布前の版を試す場合)

GitHubのReleaseに置いたVSIXからも入れられます(新規・上書き更新の両方)。

$v = (gh release list --repo nonahisa/novel-ai-assistant --limit 1 --json tagName | ConvertFrom-Json).tagName
gh release download $v --repo nonahisa/novel-ai-assistant --pattern "*.vsix" --clobber
code --install-extension ".\novel-ai-assistant-$($v.TrimStart('v')).vsix" --force

画面から入れる場合は、「拡張機能」ビュー右上の ... →「VSIXからのインストール」で同じファイルを指定します。

必要なもの

作品の管理・文字数・執筆量のグラフは、入れただけで使えます。AIを使う機能には準備が要ります。 コマンドパレット(Ctrl+Shift+P)で「小説執筆: セットアップ(必要なものを入れる)」を選ぶと、足りないものを一覧から選んで入れられます(取得量を先に表示し、途中で中止できます)。

何 何のために 要否 大きさ
Ollama本体 手元のパソコンでAIを動かす(無料・原稿を外へ送らない) 必須 約1GB
会話モデル(gemma4:e4b) 抽出・生成・校正・相談 必須 約9.6GB
埋め込みモデル(bge-m3) 相談の意味検索 任意 約1.2GB
Git 複数のパソコンで書く。過去の版へ戻す 任意 約60MB
GitHub CLI 非公開リポジトリの作成・取り寄せ 任意 約12MB

クラウドAIだけを使うならOllamaとモデルは要らず、1台だけで書くならGitとGitHub CLIも要りません。


使い方

道案内:VS Code の「ヘルプ → はじめに」にある「統合小説執筆環境をはじめる」から、書き方の診断・AIの選択・作品の用意・原稿エディター・困ったときの入口を順に押せます。

はじめの案内(作家タイプ診断)

はじめて開いたときに声をかけます。詳細メニューの「作品執筆 › 相談・助言 › 作家タイプ診断」からいつでも呼べます。

5問(いま書いているもの/どこまで決めてから書くか/いつ直すか/設定はどこにあるか/どこへ出すか)にお答えいただくと、 次にすることを、なぜそれを勧めるのかを添えて案内します。 案内は横に紙として開くので、あとから読み返せます。AIは使いません。

すでに原稿をお持ちなら既存フォルダーの登録から、これから書き始めるなら始め方から案内します。

答えはいつでも変えられます。 同じ入口から「答え直す」を選んでください(前回の答えに印が付きます)。「答えを消す」を選ぶと、はじめて使うときの状態に戻り、開き直したときにまた声をかけます。

手が止まっているときの行き先も、いつでも選べます(前の話の終わり・読み上げ・相談・次の1話のプロット)。

案内の最後にはほかのタイプの一覧が載ります。当たっていないと感じたら答え直してください。

続けて9問(相談の助言方針)にもお答えいただくと、AIの言い方も合わせます——同じ助言でも、書き手によって正反対の意味で届くためです。9問は断れます。

画面

左端のアイコンを押すと4つのビューが並びます。

  • 作品一覧:登録した作品と話数ファイル。右クリックで作品ごとの操作ができます
  • 簡単ステップメニュー:執筆の流れに沿った8つのステップ。迷ったらこちらから
  • 詳細メニュー:全操作の一覧。分類 → 小分類 → 操作の3階層です。新作構想〜電子出版等の5つの分類は、簡単ステップメニューの段と同じ名前です
  • AIに相談:開いている画面についてAIと話す窓
執筆データ              全作品執筆統計/執筆統計/作品目標設定/スケジュール/編集履歴
作品管理                作品名変更/シリーズ連結/メモ追加/新規執筆開始/既存原稿登録/クラウド取得/GitHub作品管理/編集部連携/作品別設定
新作構想                支援機能全工程実行/プロット自力作成/プロットモード/対話式プロット作成/プロット逆算/単話プロット作成/名前点検
作品執筆                相談・助言/原稿整備
自己校正                校正・校閲/読者診断
投稿脱稿                広報支援/投稿・出力
電子出版等              PDF出力/EPUBエディター
資料管理                資料抽出/資料閲覧(年表・作中時期・別筋登録を含む)
統合小説執筆環境設定    設定管理/AI/初回設定
ヘルプ                  使い方/場面別案内/ログ表示/相談ログ/バージョン確認

項目末尾の「AI」はAIを呼ぶ操作(クラウドAIは実行のたびに課金)、数字は承認待ちの件数です。作品を登録していない間、作品が要る操作は灰色になり理由が出ます。

作品を登録する

  • フォルダー登録(作品管理 → 既存原稿登録):すでに原稿があるフォルダーを指定します。カクヨム・小説家になろうからダウンロードしたファイルでも構いません
  • GitHubから追加(作品管理 → クラウド取得):別の環境で書いている作品を取り寄せます。非公開リポジトリは GitHub CLI(gh)経由です
  • 新規執筆開始(作品管理):プロット起点(設定/plot.md を用意)か、本文起点(本文/001.txt を作る)かを選びます。あとからどちらへも移れます
作品名/
├─ 本文/       ← 原稿
├─ 設定/       ← plot.md・設定資料・icons/
├─ .aiwriter/  ← 拡張機能の管理領域
└─ .gitignore

書庫:既定では1つのGitHubリポジトリに複数の作品を置きます。「作品管理 → GitHub作品管理 → GitHub初期設定」で、隣に作品があればまとめるか聞きます。別々に作った作品は「統合小説執筆環境設定 → 初回設定 → 書庫集約」で寄せられます(写すだけで、元のフォルダーは消しません)。

話数の自動認識

ファイル名 認識
001.txt 第1話
007_湖畔の誓い.txt 第7話「湖畔の誓い」
003-005_合本.txt 第3〜5話
第12話 再会.md 第12話「再会」
プロローグ.txt / 幕間1.txt プロローグ/幕間

全角数字と 〜 の範囲指定にも対応します。全話が1ファイルにまとまった形式(小説家になろうのダウンロード)は、中を読んで話ごとに分けて扱います(後書き・リアクションは本文に含めず、文字数にも数えません)。

作品を右クリック →「新規話数ファイルを追加」で、最大話数 + 1 のファイルを作れます。

文字数と執筆量

ツリーにファイルごと・作品ごとの文字数、ステータスバーに開いているファイル(と選択範囲)の文字数が出ます。ツールチップには総文字数・段落数・原稿用紙換算が出ます。原稿用紙の枚数は、20字×20行に組んだときの行数から数えます。

本文を保存するたびに、前回からの増減をその日の執筆量として記録します。「執筆データ → 執筆統計を表示」でパネルが開きます。

  • 執筆量タブ:日次30日・週次12週・月次12か月・年次のグラフ。目標線・達成率・連続日数
  • 話ごとタブ:話数・タイトル・文字数・枚数・平均比の一覧(押すとその話が開きます)

目標(1日・1か月の字数、作品の文字量、締切前の書き上げ)に届くと、執筆統計に風船が上がります(作品の文字量と締切は花火も)。原稿エディタでは下の欄に一言出るだけです。同じ目標で祝うのは一度だけです。

初回の測定、ファイルの増減、競合件数の変化、pull による増減は執筆量に数えません。記録は .aiwriter/stats/<環境名>.json に環境ごとに置き、読むときは合算します。「執筆データ → 全作品の執筆統計を表示」で全作品の合計を見られます。

「執筆データ → スケジュール」で、締切・発売日・連載開始から段取り(執筆・推敲・入稿など)を逆算し、縦が時間・横が作品の1枚に並べます(公募・自費出版・出版社・WEB連載。1つの作品にいくつでも。作品の 設定/スケジュール.json に置くので同期で機器間を行き来します)。

原稿エディタ(縦書き・横書き)

作品一覧から本文を開くと、この画面(横書き)で開きます。上のバーの「縦書き」か、右クリックの「縦書き表示」で縦書きになります。

  • ルビは振り仮名、傍点は圏点として組んだまま打ち込めます(.md の {漢字\|かんじ} も、.txt の |漢字《かんじ》・《《強調》》 も表示します)
  • 登場人物(青)・場所(緑)・能力(紫)・組織(橙)を色分けします。カーソルを合わせると設定の要点が出て、右クリックで設定資料を開けます。設定の食い違いは「変化かもしれない(外見): 黒髪(第1〜3話)→ 銀髪(第7話)」のように話数と並べて出ます
  • 上のバー:縦書き/横書き・ルビ/傍点(.md のみ)・投稿用にコピー・書体・文字の大きさ。下:前の話/次の話、作品の総字数・このファイルの字数・今日書いた字数、「最新話を書く」
  • 保存・元に戻す・外部ツールで書き換えられたときの読み直しは、ふつうのエディタと同じです(文字コードと改行も変わりません)。ファイルの関連付けも変えないので、エクスプローラーから開けば従来どおりです

読み上げ(音読推敲):ツールバーの「読み上げ」→「▶ 読む」でOSの声が読み上げ、読んでいる文が光ります(AIも通信も使いません)。「⚑ 引っかかった」でその文の前にシーンメモを残して一時停止します。

シーンメモ:行頭に //(全角 // も可)で書くと付箋になります。最初の語がタグです(TODO・要確認・伏線・アイデア・自由)。

// TODO ここに潮の匂いの描写を足す

蛍光黄色で示され、**字数・投稿用コピー・PDF・プレビュー・AIへ渡す本文には入りません。**原稿エディターの右クリック「シーンメモを横に開く」で一覧が開き、「次へ」「戻る」で話をまたいで飛べます。

ルビと傍点

本文を範囲選択して右クリック →「ルビを振る」「傍点を付ける」。漢字の直後にカーソルがあれば、選ばなくても拾います。

ルビは .md でも .txt でも振れます。 書き方はファイルに合わせて入ります(.md は {漢字|かんじ}、.txt は |漢字《かんじ》)。すでにルビのあるところを選ぶと、いまの読みが入った入力欄が出て直せます(空にして確定すると外れます)。傍点は .md だけです(.txt は投稿サイトごとに書き方が違うため)。

書き方 表示
ルビ {漢字\|かんじ} 漢字の上に「かんじ」
傍点 {{強調}} 各文字の右上に点

投稿サイト用に変換:原稿エディターの右クリック →「投稿サイト用にコピー」。クリップボードへ入れるだけで、原稿は書き換えません。

サイト ルビ 傍点
カクヨム/ネオページ |漢字《かんじ》 《《強調》》
小説家になろう/アルファポリス |漢字《かんじ》 |強調《・・》

取り込む:「投稿脱稿 → 投稿・出力 → 投稿サイトルビ取込」で、サイトの記法を拡張機能の書き方へ読み替えます(件数を先に表示)。

読み仮名からまとめて振る:設定資料パネルの「ルビを追加」。範囲(すべての話/開いている話/話数を選ぶ)と、最初の1回だけか全部かを選べます。

テキストをMarkdownにする

「作品執筆 → 原稿整備 → 本文 .md 化」、または話数を右クリック。名前を変え、投稿サイト記法のルビ・傍点だけをこの拡張機能の書き方へ直します(字そのもの・文字コード・改行はそのまま)。直す前の本文は控えが残ります。


AI機能

AIを設定する

サイドバー右上の歯車、コマンドパレット(Ctrl+Shift+P)の「小説執筆: AI設定」、または「統合小説執筆環境設定 → AI → AI設定」。使うAIを選ぶと接続テストが走り、モデルの一覧から選べます。

AI 費用 APIキーの発行元
Ollama 無料・オフライン可 不要
LM Studio 無料・オフライン可 不要
Gemini 無料枠あり。超えると課金 aistudio.google.com
さくらのAI Engine 無料枠あり。超えると課金 さくらのクラウド コントロールパネル
ChatGPT 実行するたびに課金 platform.openai.com
Claude 実行するたびに課金 console.anthropic.com
VS Code 経由 VS Code 側の契約による 不要(VS Code が持っています)

APIキーはOSの資格情報ストアへ保存し、settings.json や作品フォルダーには書き込みません。 ログでは伏せ字にします。クラウドAIでは、呼び出しの多い処理の前にトークン量の目安を表示します。

  • Ollama:事前に起動してモデルを取得します(ollama pull gemma4:e4b)。コマンドパレットの「小説執筆: Ollama導入」で足りないところだけ案内します
  • LM Studio:モデルを読み込み、左の「Developer」からローカルサーバーを開始してから使います(APIキー不要)
  • VS Code 経由:VS Code に繋いであるAIを借ります(APIキー不要)。GitHub Copilot にサインインするか、VS Code の設定に各社の鍵を入れてあれば選べます。モデルの名前に提供元が付きます。初回は許可を確認します。 本文を分けて何度も送る機能(抽出・誤字脱字・推敲の通し)には向きません——Copilot の無料枠(チャット50回/月)では足りないためです
  • コンテキスト長:ChatGPT・さくらのAI Engine・LM Studio はAPIから取得できないため、下記の contextWindow に実際の値を入れてください。実際より大きいと、入力が黙って切り捨てられます
  • 機能別AI割当(統合小説執筆環境設定 → 設定管理):8つの単位(抽出/誤字脱字/推敲/矛盾/逸脱/伏線/生成/相談)で使い分けられます
  • AIチューニング(統合小説執筆環境設定 → 初回設定・AIを使います):合言葉を入れた詰め物を送り、実際に読める上限を割り出します。結果は「設定に書く」を押したときだけ設定へ入ります

設定資料をためる

  • 一括抽出(資料管理 → 資料抽出):全話から登場人物・能力・組織・場所・世界観を1回の応答でまとめて取り出し、設定/characters/ などのJSONと、読み用の characters.md・abilities.md・organizations.md・locations.md・world.md を作ります
  • 設定資料集出力(投稿脱稿 → 投稿・出力):JSONから上の5つのMarkdownを作り直します(AIを呼びません)
  • 設定資料集閲覧(資料管理 → 資料閲覧):左が一覧、右が詳細。名前・読み・別名・性別・役割・性格・外見・説明・作者メモをその場で直せます。保存した項目は、以後の抽出で上書きされません
  • 名前点検(新作構想):響きの近い名前を強さと理由つきで並べます(AI不要)。「候補を出す」で新しい名前を10件(AIを使います)、「付け替える」で本文の登場箇所を提案パネルに並べ、1件ずつ/まとめて適用できます
  • 人物相関図:「関係」と「呼称」から図を作ります(AI不要)。人物ごとの中心図とSVGの書き出しもできます
  • 年表(資料管理 → 資料閲覧):1行が1話で、登場人物・作中の変化・能力の習得・呼称・伏線・あらすじが並びます。「作中時期・別筋登録」で時期を割り当てると時系列順に並べ替えられます
  • 設定資料項目追加(作品管理 → 作品別設定):誕生日・身長などを人物設定に足せます(定義は 設定/custom_fields.json)
  • AIで再読込:各項目に入れる内容をAIが提案します。空欄を埋める提案だけが最初からチェックされ、既存の内容を置き換える提案には警告が付きます
  • AIに相談する(設定資料パネル):人物についての質問や掘り下げ。承認したものだけが aiNotes へ追記されます
  • 人物重複統合:「リン」と「リンセップ・アウクト」のような重複を1件にします(自動では統合しません)
  • 設定資料更新分反映:再抽出で見つかった既存人物への変更は承認待ちになり、何が変わるかを見てから取り込めます

抽出するもの:名前、別名、役割、性格、外見、一人称、呼称(誰が誰をどう呼ぶか。相手ごと・呼び方ごと)、関係、登場話数。同じ相手への複数の呼び方は、話数付きで全部残します。 保存は1人1ファイル(char_001_月島灯.json)で、変更のないファイルは再処理しません。

他のAIに頼む:設定/_schema/ にAI向けの定義(日本語の README.md と JSON Schema)を書き出しています。Copilot・Claude Code などに「設定/_schema/README.md を読んでから 設定/characters/ を更新して」と頼めます。外部から設定JSONが書き換えられると通知するので、内容を確認してから取り込めます。

整える・直す・相談する

  • プロット逆算:各話あらすじを材料に、ログライン・テーマ・世界観・舞台・人称・行動原理・あらすじ・主要人物を 設定/plot.md へ書きます。作者が書いた項目は、確認せずに書き換えません
  • 各話あらすじ:あらすじと一緒に感情曲線(盛り上がり0〜10・明暗−5〜+5)を測り、設定/synopsis.md にグラフで入ります
  • 作品紹介文・キャッチコピー・章立て:本文から下書きを作ります
  • 更新SNS告知文作成(投稿脱稿 → 広報支援):ネタバレしない告知文を3種(X用・活動報告/近況ノート用・後書き用)。貼るのは作者です(サイトへ自動で書き込みません)
  • 誤字脱字・推敲・矛盾・プロット逸脱・伏線の検知(自己校正 → 校正・校閲):候補を「提案」パネルに並べ、1件ずつ確認して適用します。方言や口癖は「直さない語」に登録して守れます
  • 表記ゆれ検知:「良い/よい」のような揺れを作品全体から探します(AIを使いません)。どちらに揃えるかを選ぶと、少数派の箇所が提案パネルに並びます
  • AIに相談する:左サイドバーの「AIに相談」、本文の右クリック、または詳細メニューの「作品執筆 → 相談・助言 → 相談パネルを開く」。いま開いているファイルについて日本語で質問できます(範囲を選ぶとそこについての相談になります)。プロット・紹介文・キャッチコピー・各話あらすじは、確かめてボタンを押すと書き込めます(本文は対象外)

AIに渡す本文:長い作品はそのまま渡せないため、その名前が出てくる場面だけを集めて渡します(既定で30箇所・12,000字まで、作品全体から均等に)。相談では、質問に近い場面を本文・設定資料・各話あらすじから探し、出どころ(《本文/第105話》)を添えて渡します。コマンドパレットの「小説執筆: ベクトル検索準備」を入れると言い換えでも見つかりやすくなります(埋め込みモデル約1.2GB、手元のOllamaで作るので無料。既定は「切」)。

ログ

「ヘルプ → ログ表示」。.aiwriter/logs/actions.log にも保存されます(Gitの同期対象外)。本文そのものは書かず、APIキーらしき文字列は伏せ字にします。


Claude Code から使う(MCPサーバー)

このリポジトリを Claude Code で開くと、.mcp.json の登録により novel-ai-assistant のツールが一覧に出ます(npm run build で dist/mcp-server.mjs が作られます)。VS Code が起動していなくても動きます。

使う前に、作品ごとに許可が要ります。 既定は拒否で、許可するまで外からは1文字も読めません。VS Code でその作品を開き、「詳細メニュー → 作品管理 → 作品別設定 → 外部AI許可/取消」から許可してください。許可はこの機械だけに効き、いつでも取り消せます。

できることは、作品フォルダーの走査(合本は話ごとに分けます)と、誤字脱字・推敲・矛盾検知・伏線・相談・設定資料の抽出・各話あらすじ・プロット逸脱・単話プロット・表記ゆれのプロンプト作り・検算・実行です。原稿も設定資料も書き換えません。

  • 本文をどこへ送るかは毎回指定します(runner)。ollama は手元のOllamaで検算まで通し、結果だけを返します。claude はプロンプトを返し、Claudeが読んだ応答を検算へ戻します(このとき本文がAnthropicへ渡ります)
  • 手元以外のOllamaへ送るときは allowRemote を付けます
  • 読むのは、指定した作品フォルダーの中だけです
  • 読まれた記録は残ります。「執筆データ → 編集履歴」の下に、いつ・どの道具が・本文をどこまで外へ出したかが並びます。許可していない作品へのノックも残ります

編集部の方と一緒に使う

設定 novelai.mode を editor にすると、本文の校正・校閲だけが使える状態になります(誤字脱字・表記ゆれ・推敲・直さない語・同期と競合解決・文字数・設定資料の閲覧)。設定資料の抽出や更新、プロット、あらすじ、執筆統計、新規作品の作成は押せなくなり、理由が出ます。

  • 編集部は本文を書き換えません。「適用」を押しても提案として置かれます。作者側で「作品管理 → 編集部連携 → 編集部提案確認」を開き、1件ずつ採るか見送るかを決めます(採る直前に本文と照らし合わせます)
  • 校閲ロック:「作品管理 → 編集部連携 → 校閲開始/終了」で、いま開いているファイルが「校閲中」になります。ファイル単位なので同時に別の話を書け、作者はいつでも外せます
  • 編集履歴:「執筆データ → 編集履歴」で、作者(●)・編集者(▲)・AI(■)を色分けして並べます(.aiwriter/history/edits.jsonl。GitHubで同期されます)
  • 競合:それぞれの版を最後に触った人の名前(gitの user.name)が出ます
  • 編集部がGitHub経由で設定資料を直したときは、通知の「この変更を守る」で以後AIに上書きさせません

GitHubで持ち運ぶ

「作品管理 → GitHubで作品管理」から、同期・競合解決・復元を行います。Gitの言葉は要りません。

復元:日時と件名の一覧から版を選ぶと、戻すと何が起きるか(内容が戻る/消える/復活するファイル)を先に見せます。いまの原稿は戻す前に履歴へ自動で残すので、やり直せます。


投稿・出版・書き出し

  • 投稿用変換・コピー(上記「ルビと傍点」)
  • 投稿状況の記録:投稿サイトごとの投稿状況・作品情報・ランキングを手元に記録します(手入力のみ。サイトへの自動アクセスはしません)
  • EPUBエディター:表紙・目次・挿絵・奥付・人物紹介を、プレビューで確かめながら組みます。飾り(SVG)は 設定/書籍/飾り/ か novelai.epub.ornamentFolder から足せます
  • PDF出力:印刷用の組版
  • 設定資料集のMarkdown:編集部向け・イラスト発注向けなど、提供先別にも出せます
  • IME辞書:Google日本語入力・MS-IME・ATOK 用

文字コード:UTF-8(BOMの有無どちらも)と Shift_JIS を自動判別して読み込み、同じ文字コード・改行コードのまま書き戻します。


設定

Ctrl + , で設定を開き、「novelai」で検索してください。

執筆・表示

設定 既定値 説明
novelai.countMode net ステータスバーに表示する文字数の種類
novelai.excludeRubyFromCount true ルビ部分を文字数から除外する
novelai.manuscriptEditor.vertical true 「縦書き表示」で開いた原稿を、はじめから縦書きにする
novelai.manuscriptEditor.fontFamily (空) 原稿の画面で使う書体。空なら明朝体
novelai.manuscriptEditor.readAloudRate 1 読み上げの速さ(0.5〜2)
novelai.episodeFileExtension .txt 新規ファイルの既定の拡張子
novelai.episodeNumberDigits 3 話数のゼロ埋め桁数(3なら 001.txt)
novelai.chatter.enabled true 書いている最中に、AIが相談パネルへひとこと差し込む(Ollamaのみ)
novelai.stats.enabled true 保存のたびに執筆量を記録する
novelai.stats.showInStatusBar true ステータスバーに今日の執筆量を出す
novelai.stats.dailyGoal 0(目標なし) 1日の目標字数
novelai.stats.monthlyGoal 0(目標なし) 1か月の目標字数
novelai.stats.dayBoundaryHour 4 1日の区切りとする時刻
novelai.stats.weekStart monday 週次グラフで週の始まりとする曜日
novelai.schedule.notify true スケジュールの段の開始・期日、締切・発売日・連載開始が近づいたら1日1回知らせる
novelai.schedule.weekdayWeight 1 スケジュールの逆算で、平日にどれだけ進むか(0 は休み)。お勤めがあって平日は少し、休日に多く書く人は、平日を小さく・土日祝を大きく
novelai.schedule.weekendWeight 1 土日にどれだけ進むか(0 は休み)
novelai.schedule.holidayWeight 1 祝日にどれだけ進むか(0 は休み。土日と重なる祝日もこの割合)
novelai.schedule.overlapPenalty 0.1 自分で進める作業が同じ日に重なったときの、重なり1つごとに落ちる速さの割合
novelai.celebrations.enabled true 目標に届いたら、執筆統計に風船(大きな目標は花火も)、原稿エディターの下の欄に一言
novelai.readerStats.importOnFocus true VS Code に戻ったとき、統合小説執筆環境ヘルパーがコピーした読者の反応を取り込むか訊く
novelai.epub.ornamentFolder ""(指していない) EPUBの飾り(*.svg)を追加で読み込むフォルダーの絶対パス
novelai.mode author この環境を作者(author)と編集者(editor)のどちらとして使うか

曜日ごとに割合を変えたいときは novelai.schedule.weekdayOverrides に書きます(例:水曜は書かない → { "wed": 0 }。書いていない曜日は平日・土日の割合のまま)。

AI

設定 既定値 説明
novelai.ollama.endpoint http://localhost:11434 OllamaのURL
novelai.ollama.executablePath ""(自動検出) ollama 実行ファイルの場所
novelai.ollama.numCtx 0(自動) AIへ渡すコンテキスト長。指定しないと入力が切り捨てられます
novelai.ollama.streaming true Ollama の応答を流しながら受け取り、相談パネルに考えている中身を流す
novelai.ollama.timeoutSeconds 300 Ollamaの1回の呼び出しのタイムアウト
novelai.lmstudio.endpoint http://localhost:1234/v1 LM StudioのローカルサーバーのURL
novelai.lmstudio.contextWindow 8192 LM Studioのコンテキスト長。読み込んだモデルに合わせてください
novelai.lmstudio.timeoutSeconds 300 LM Studioの1回の呼び出しのタイムアウト
novelai.lmstudio.cliPath ""(自動検出) LM Studioのコマンド(lms)の場所
novelai.lmstudio.loadContextLength 0(モデルの最大) モデルを読み込むときの文脈の長さ
novelai.gemini.endpoint https://generativelanguage.googleapis.com/v1beta GeminiのURL
novelai.gemini.timeoutSeconds 180 Geminiの1回の呼び出しのタイムアウト
novelai.openai.endpoint https://api.openai.com/v1 ChatGPTのURL
novelai.openai.timeoutSeconds 180 ChatGPTの1回の呼び出しのタイムアウト
novelai.openai.contextWindow 128000 ChatGPTのコンテキスト長。実際より大きいと入力が切り捨てられます
novelai.sakura.endpoint https://api.ai.sakura.ad.jp/v1 さくらのAI EngineのURL
novelai.sakura.timeoutSeconds 180 さくらのAI Engineの1回の呼び出しのタイムアウト
novelai.sakura.contextWindow 32000 さくらのAI Engineのコンテキスト長。実際に合わせてください
novelai.claude.timeoutSeconds 300 Claudeの1回の呼び出しのタイムアウト
novelai.maxOutputTokens 16384 1回の応答で受け取る最大トークン数(出力は入力より単価が高い)
novelai.chunkSizeMode モデルによって可変 AIへ1回に送る本文の量の決め方。既定はコンテキスト長から自動
novelai.chunkChars 0(指定なし) 1チャンクの文字数。「文字数を指定する」のときだけ使います
novelai.mergeChunkChars 6000 短い話をまとめて送るときの目安。「文字数を指定する」のときだけ(0 でまとめない)

Git・検索・ログ

設定 既定値 説明
novelai.git.autoFetch true 別の環境の変更を自動で取得する。取得だけで、原稿は書き換わりません
novelai.git.autoFetchIntervalMinutes 10 自動取得の最小間隔
novelai.git.autoResend true 記録済みで送れていない分を、回線が戻ったら自動で送り直す。送るだけで、取り込みや合流はしません
novelai.git.autoResendIntervalMinutes 5 自動の送り直しを試す間隔(分)
novelai.git.syncCache false 抽出キャッシュをGitの同期対象にするか
novelai.vectorSearch.enabled false 相談で使う意味検索(ベクトルDB)を使うか
novelai.vectorSearch.model bge-m3 意味検索に使う埋め込みモデル(変更すると索引は作り直し)
novelai.vectorSearch.autoUpdate true 相談を始めるときに、変更ぶんだけ索引を追加する
novelai.vectorSearch.useInChecks false 矛盾検知で意味の近い前の場面も渡し、伏線回収確認で意味の近い箇所だけを照らす
novelai.chatLog.enabled true 相談のやり取りを .aiwriter/logs/chat.md に残す(原稿の一部を含みます)
novelai.usageLog.enabled true 送った量を .aiwriter/logs/usage.md に1行残す(字数だけ)
novelai.logs.retentionDays 7 ログに残す日数(0で消さない)
novelai.findings.retentionDays 3 AIの指摘を並べ続ける日数(0でずっと並べる)
novelai.proposals.showInBottomPanel false 提案パネルを画面下のパネル領域にも出す(既定はエディターの右の列だけ)

novelai.modelTuning は「AIが実際に読める長さを測る」が書き込む記録です(手で書く項目ではありません)。novelai.claude.maxOutputTokens は旧設定で、novelai.maxOutputTokens に置き換わりました。

novelai.confirm.remembered は、確認の画面で「以降は訊かない」を押したときに書き込まれる控えです。戻すときは、この設定の説明にある「訊かないことにした確認を見直す」から選ぶか、ここを空({})にしてください。


注意

  • AIの結果は作者が確認してください。 抽出結果は本文との逐語照合で根拠のないものを除きますが、精度を保証するものではありません
  • 本文(原稿)をAIが勝手に書き換えることはありません。 適用は作者が1件ずつ押したときだけです。書き戻す前に本文が変わっていないかを照合し、変わっていれば中止します
  • 安全対策:Gitの未解決競合(<<<<<<<)を含むファイルは処理しません。未保存の変更が残る場合は開始せず、壊れたJSONがあれば上書きせず中止します
  • 対応する投稿サイトの記法:カクヨム・ネオページ・小説家になろう・アルファポリス
  • 実データで確かめたAIは Ollama・Gemini・さくらのAI Engine・LM Studio の4つです。 ChatGPT・Claude は実サービスへ繋いだ確認をしていません
  • ブラウザ版(vscode.dev / github.dev) は作品の登録と一覧表示までを確認済みです。AI接続・書き込み・GitHub同期は未確認で、外部プロセスを使う操作は押せなくなり理由が出ます
  • 未実装:相談パネルから設定資料の項目を直接書き換えること(人物メモへの追記は対応済み)

アンインストール

拡張機能ビューから、または次を実行します。原稿、.aiwriter/、設定/characters/ は削除されません。

code --uninstall-extension nonahisa.novel-ai-assistant

開発者向け

npm install          # 依存の取得
npm run build        # ビルド
npm run watch        # 監視ビルド
npm run check        # 型検査+単体テスト+本番ビルド

VS Codeで F5 を押すと拡張機能開発ホストが起動します。

npm run package:vsix     # release/ にVSIXを作る(リリースゲートを通ります)
npm run verify:vsix      # 中身・隔離インストール・版を検証する
npm run release:github   # タグを押して Release を作り、VSIXを添付する

release:github は、作業ツリーがきれいで main が origin/main と同じで gh にログイン済みでなければ止まります。ノートは docs/releases/vX.Y.Z.md、無ければ CHANGELOG.md の先頭の節を使います。Marketplaceへの公開(npm run publish:marketplace)は別の操作です。

さくらのAI Engine のスモークテストは GitHub Actions の Sakura AI Engine Smoke Test で走ります(シークレット SAKURA_AI_ACCOUNT_TOKEN が要ります)。設計・仕様の文書は docs/ にあります。


ライセンス

MIT ライセンスです(全文は配布物に同梱の LICENSE.txt)。自由に使い、改変し、再配布できます。作者は何の保証も負いません。

あなたが書いた小説・プロット・設定資料は、このライセンスの対象外です。 作品の権利はあなたのものです(この拡張機能が作ったファイルも同じです)。

組み込んで配布しているライブラリ(全文は配布物に同梱の THIRD-PARTY-NOTICES.md):

ライブラリ ライセンス 用途
@anthropic-ai/sdk MIT Claudeへの接続
iconv-lite MIT Shift_JIS の読み書き
diff BSD-3-Clause 本文の差分

リポジトリ:https://github.com/nonahisa/novel-ai-assistant

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft