ホーム 開発者向け 開発ガイド

サードパーティアプリ開発ガイド

エンジニアでなくてもわかる版 最終更新日:2026年7月6日

プログラミングの知識がなくても、AIに日本語で指示するだけ(vibe coding)で NextWorksのアプリを作って公開できます。対応AIツール:Claude Code / Cursor / Codex / Google AI Studio など。

全体の流れ(登場人物は3人)

【開発者(あなた)】          【運営】                【利用者(各社の管理者)】
 ①準備 → ②ひな形作成          ⑥審査して承認・署名        ⑧ストアから
 → ③AIに指示して開発      →                        →   権限に同意して
 → ④手元で動作確認            (問題があれば却下/          インストール
 → ⑤提出                       公開後も緊急停止可)        → メニューから利用

アプリは隔離された安全な箱(サンドボックス)の中だけで動きます。本体のデータや設定を壊すことは仕組み上できないので、安心して開発・導入できます。

開発者の手順

1 準備(最初の1回だけ・約10分)

  1. Node.js をインストール(nodejs.org から「LTS」版。画面の指示どおり進めるだけ)
  2. SDK一式を入手する
    • 仕様は公開なので、AIツールには機械可読の仕様URLをそのまま渡せます(承認不要):…/api/ext/v1/manifest-schema.json と …/api/ext/v1/openapi.json
    • SDK本体(ひな形生成・提出ツール)は承認ベンダー限定。運営の承認で受け取ったベンダートークン(nwv_...)で取得します:
      curl -H "X-Vendor-Token: nwv_あなたのトークン" https://license.miraios.com/public/sdk/download -o nextworks-sdk.zip
      (zipを展開すると sdk フォルダになります。以後アップデートも同じコマンドで最新版を取得できます)
  3. お好みのAIコーディングツールを用意(Claude Code / Cursor / Codex / Google AI Studio のどれでも)

2 アプリのひな形を作る(コピペ1行・約1分)

ターミナル(コマンドプロンプト)に貼り付けて実行します:

node sdk/create-nextworks-plugin/index.mjs my-app --id 会社名.アプリ名 --name "訪問記録"
  • 会社名.アプリ名 は半角小文字(例:acme.visit-log)。会社名部分は運営に登録した「名前空間」と同じにします
  • my-app というフォルダができ、動くサンプルとAI向けの説明書(AGENTS.md)が入っています

2種類のアプリがあります。用途で選んでください。

種類向いている用途作り方
iframe型(既定)画面付きの業務アプリ。本体機能(データ/AI/ファイル/タスク/通知/外部API)は NxBridge で使う上のコマンド
セルフホスト型(remote)音声処理・大容量・常時稼働・独自バックエンドが要るアプリ。自分のサーバーでホスト末尾に --remote を付ける

セルフホスト型のひな形(依存ゼロのNodeサーバー付き。接続・Webhook署名検証・定期実行が実装済み):

node sdk/create-nextworks-plugin/index.mjs my-remote-app --id 会社名.アプリ名 --name "音声議事録" --remote
cd my-remote-app && node server.mjs   # → http://localhost:8990
  • 定期実行(スケジューラ)は remote 型で使えます。manifest.json の schedules(例:60分ごと)に宣言すると、本体が署名付き通知(event=schedule)をあなたのサーバーに送ります(最短5分)

3 手元で動かしてみる(コピペ2行)

cd my-app
npm run dev

ブラウザで http://localhost:8787 を開くと、NextWorks本体が無くてもアプリが動きます(練習用のお試し環境。データは再起動で消えます)。

  • 「ポートが使用中」と出たら番号を変えて起動できます:Mac/Linux PORT=8788 npm run dev / Windows(PowerShell) $env:PORT="8788"; npm run dev
  • ひな形には npm run dev / pack / submit のショートカットが同梱されています(AIツールもこれを使います)

4 AIに日本語で指示して開発する(ここが本番)

my-app フォルダをAIツールで開いて、作りたいものを日本語で伝えるだけです。

例:「顧客への訪問記録アプリにしてください。日付・訪問先・担当者・メモを登録できて、一覧は新しい順に並べ、検索もできるようにして。見た目は本体のテーマ色に合わせて。」

  • Codex / Claude Code は、フォルダ内の AGENTS.md(開発ルール)を自動で読み、NextWorksの流儀(守るべき制約)に沿ってコードを書いてくれます
  • Cursor / その他のツールでは、最初に一言「AGENTS.mdを読んでルールに従って」と伝えると確実です
  • Claude Code / Cursor は MCPサーバー(sdk/mcp-server)を登録すると、AIが仕様書を自分で参照できてさらに正確になります

作ったら③の画面を再読み込みして確認 →「ここを直して」とAIに伝える → の繰り返しです。

本体の機能を使う(自作しない) — AIには「本体の◯◯を使って」と伝えると、AGENTS.md の早見表に沿って NxBridge 経由で実装します。

やりたいこと一言の例
このアプリ専用データの保存/一覧「登録・一覧・検索できるように」
本体の従業員/顧客を選ばせる「担当者は本体の従業員から選べるように(core.user:read)」
AIで要約・下書き「本体のAIで議事録を要約して(capabilities に ai:generate を宣言)」
音声の文字起こし「録音を本体AIで文字起こしして話者も分けて(ai:transcribe+files:write)」
ファイル添付+テキスト抽出「Word/PDFを読み込んで本文を取り込んで(files:write)」
本体タスク化・通知「TODOを本体のタスクに追加して(core.task:create)」
外部サービス連携「Slackに通知(http:external+externalHosts。鍵は本体で預かる)」
  • これらは NxBridge 経由で本体が代理実行します(アプリ内に作り直さない・外部APIキーを埋め込まない)。
  • 使う前に NxBridge.capabilities() でこの本体の対応状況を確認するのが安全(無効な機能はフォールバック)。まだ本体に無い機能をAIが外部APIで勝手に作ろうとしたら止めてください(審査で却下)。

AIが自動で守ってくれるルール(知っておくと安心)

  • アプリは自分専用のデータ置き場しか触れない(他社アプリや本体のデータは見えない・壊せない)
  • 外部への勝手なデータ送信はできない(仕組みでブロックされます)
  • 見た目は本体のテーマに自動で馴染む

5 提出する(アプリのフォルダの中で・1行ずつ実行)

完成したら提出用ファイルを作って送ります。ベンダートークン(nwv_...)は運営から受け取ってください。

cd my-app
npm run doctor                                     # 提出前の自己診断(禁止API・権限の宣言漏れ・version)
npm run submit -- --save-token nwv_あなたのトークン   # ← 初回のみ(トークンを保存)
npm run pack
npm run submit
  • 提出前に npm run doctor を実行すると、fetch/alert/confirm/prompt の使用や、コードが使う機能と manifest の権限宣言のズレ、version不一致を事前に検出できます([error] は審査で却下されやすい)
  • AGENTS.md を最新化したいときは npm run update-agents -- --url https://利用先のNextWorks(本体の最新仕様=新機能をAIの開発ルールに反映。あなたの固有メモは保持されます)
  • 初回だけ --save-token でトークンを保存すれば、以後は npm run pack → npm run submit の2つだけでOKです
  • 必ず1行ずつ実行してください(2つのコマンドを1行に繋げるとエラーになります)
  • 提出した瞬間に自動チェックが走り、問題があればその場で理由が表示されます(直して再提出)
  • 合格すると「審査待ち」になり、あとは運営の承認を待つだけです
  • 再提出(アップデート)は manifest.json の version を上げてから pack→submit します(例:0.1.0 → 0.1.1)

トークンの取り扱い(重要)
・トークンはチャット(AIへの指示欄)やアプリのフォルダ内のファイルに貼らないでください。AIの会話履歴やgitに残ります
・--save-token の保存先はユーザーフォルダ(~/.nextworks/vendor-token)=アプリのフォルダの外なので、gitに混入しません
・環境変数 NEXTWORKS_VENDOR_TOKEN でも渡せますが、Windowsでは既に開いていたターミナルに反映されないため、うまくいかない時は --save-token を使ってください
・うっかり貼ってしまったら、運営にトークン再発行を依頼すれば古いものは無効になります

運営(NextWorks側)の手順

すべてライセンスサーバー管理画面 → 「サードパーティ」タブで行います。

  1. ベンダー登録:開発者の名前・メール・名前空間(例:acme)を登録
  2. 承認:「承認」ボタン → 提出トークンが1回だけ表示されるので、安全な方法で開発者に渡す
  3. 審査:提出が届いたら「審査」ボタンで、自動チェック結果と要求している権限を確認
    • 問題なければ「承認して公開」(自動で電子署名され、ストアに掲載されます)
    • 問題があれば「却下」(理由を添えられます)
  4. 緊急停止(キルスイッチ):公開後に問題が見つかったら「失効」→ 全利用者の環境で自動的に止まります

上級:プラットフォーム関数(フェーズ3・既定OFF)

capabilities:["functions:run"] を宣言したアプリは、本体サーバー上の分離環境でコードを実行できます(音声処理など重い処理を、開発者が自前サーバーを持たずに動かす用途)。本体サーバー上で第三者コードが動くため、既定では完全に無効です。有効化は運営(インフラ担当)の判断で、次の2つが揃ったときだけ動作します:

  1. 各テナントのサーバーで isolated-vm(V8アイソレート=真の分離ランタイム)を導入(cd backend && npm install isolated-vm。ネイティブビルドにC++ツールチェーンが必要)
  2. 環境変数 TP_FUNCTIONS_ENABLED=true(+任意で TP_FUNCTIONS_MEMORY_MB / TP_FUNCTIONS_TIMEOUT_MS)を設定
  • 未導入・未設定なら、関数呼び出しは自動的に 501/503 を返し、既存動作には一切影響しません
  • 関数から使えるのは本体が注入する nx.core.list / nx.ai.generate / nx.log のみ(fs/net/require 等へはアクセス不可)。1日あたりの実行上限つき

推奨:再販・マルチテナント運用では、各顧客サーバーで有効化せず、専用のサンドボックス用サーバーでのみ有効化することを強く推奨します(第三者コードの実行はリスクが高いため)

利用者(各社の管理者)の手順

  1. NextWorksの プラグイン管理 → 「サードパーティアプリ」 を開く
  2. 使いたいアプリの「インストール」を押す
  3. 権限の同意画面(このアプリが何を見られるか・できるかが日本語で表示)を確認して同意
  4. サイドバーのメニューに追加されるので、クリックして利用開始
  5. 不要になったら「削除」(データは残るので、再インストールすれば元どおり)

よくある質問

はい。②③⑤のコピペと、④の「日本語でAIに指示」だけで完結します。AIが行き詰まったら「AGENTS.mdを読み直して」「開発サーバーのエラーを見て直して」と伝えるのがコツです。

三重に守られています。①アプリは隔離された箱の中でしか動けず、同意した範囲のデータしか見えません。②外部へのデータ送信は仕組みで遮断されます。③運営の審査・電子署名を通ったものしか配布されず、問題があれば全環境で即時停止(キルスイッチ)できます。

上級者向けに「セルフホスト型」があります。開発者が自分のサーバーでアプリを動かし、NextWorksとは安全な合鍵(資格情報)と署名付き通知で連携します。詳細な技術仕様(開発者向けドキュメント・OpenAPI仕様)については、お問い合わせよりご相談ください。

はい。提出時に --price 500 のように価格(円)を付けるだけで、ストアに「¥500 で購入」ボタンが表示され、利用者はカード決済(Stripe)で購入できます。取り分は開発者70%・運営30%で、売上は運営の管理画面に自動記録されます(お支払いは運営から個別にご案内します)。銀行振込などカード以外の決済は、運営が入金確認後に手動でインストール権を付与できます。

困ったときは(実際にあったトラブルと対処)

症状原因と対処
Cannot find module ...sdk/...pack.mjs実行する場所の間違い。アプリフォルダ(my-app)の中にいるなら npm run pack を使う。直接パスを書くなら ../sdk/...(sdkは1つ上の階層)
本番で画面が動かず NxBridge is not defined古いひな形で作ったアプリの既知問題(修正済み)。最新のSDKでひな形を作り直すか、AIに「bridge.jsの中身をindex.htmlに内包して」と伝える
削除ボタン等が本番で反応しない(Ignored call to 'confirm()'...)本番のサンドボックスでは alert / confirm / prompt が使えません。AIに「confirmを使わず、ページ内の確認UI(2度押し方式など)にして」と伝える
ポート8787が使用中別番号で起動:$env:PORT="8788"; npm run dev(Mac/Linuxは PORT=8788 npm run dev)
npm run submit が「ベンダートークンが見つかりません」npm run submit -- --save-token nwv_あなたのトークン で1回保存すれば以後は不要。環境変数方式はWindowsで開いていたターミナルに反映されないので非推奨
再提出したのに本番が変わらないmanifest.json の version を上げてから pack→submit。反映後、本体のストアで新バージョンへ更新
自動チェックで却下された表示された理由をそのままAIに貼り付けて「直して」
  • 迷ったらAIに「npm run dev を起動してエラーメッセージを読んで直して」と伝える
  • それでも解決しなければ運営(NextWorksサポート)へ

開発パートナーとして参加したい方・ご質問がある方

ベンダー登録・ご質問は下記までご連絡ください。

メールアドレス:info@nextworks-ai.com

お問い合わせフォームへ