凪 - LLM用のwebui (tauriでのstudio版もある)
  • Vue 85.2%
  • JavaScript 8.8%
  • Rust 5.6%
  • HTML 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Zel9278 2e1e7f2cd7 Rename to Nagi Studio and add agent web/file tools
Rebrand onair to nagi across the app:
- Product name, window title, package and crate names
- Tauri identifier life.c30.nagi.studio
- Dev proxy path /nagi-api and X-Nagi-* headers
- Storage dir .nagi-data/nagi.sqlite
- localStorage nagi-* keys and IndexedDB nagi-character-memory
- Theme id nagi with 凪 as the assistant display name

Legacy data migrates automatically: the dev server renames
.onair-data, and the client moves onair-* localStorage keys and
the old IndexedDB memories on first load.
VITE_ONAIR_PROXY_TARGET still works as a fallback.

Also includes previously uncommitted agent work: native
web_search and web_fetch commands, project directory picker,
diff and file event rendering, and agent plan UI.
2026-08-14 20:21:50 +09:00
src Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00
src-tauri Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00
.gitignore Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00
index.html Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00
LICENSE Initial release of Onair Studio 2026-08-06 16:09:28 +09:00
package.json Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00
pnpm-lock.yaml Initial release of Onair Studio 2026-08-06 16:09:28 +09:00
README.md Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00
vite.config.js Rename to Nagi Studio and add agent web/file tools 2026-08-14 20:21:50 +09:00

Nagi Studio(凪)

Nagi Studioは、OpenAI互換のChat Completions APIとMCPサーバーを利用できる、Vue 3 + Tauri 2製のチャットクライアントです。

Webブラウザでも利用できますが、デスクトップ版ではAgentモード、ローカルファイル操作、ターミナル実行、ネイティブ確認ダイアログを利用できます。

Features

  • Chat / Characters / Agentの独立したモード
  • OpenAI互換APIのストリーミング応答
  • Markdown、コードハイライト、コードコピー、表、チェックリスト、選択肢UI
  • MCPのStreamable HTTP / SSE接続とツール呼び出し
  • 推論サマリー、ツール実行履歴、画像レスポンスの表示
  • 複数チャット、タイトル自動生成、スクロール位置保存
  • ファイル・画像添付とクリップボード貼り付け
  • 複数テーマとレスポンシブUI
  • SQLiteによる会話同期ストレージ
  • 同期トークンを使った複数端末間の会話同期
  • Charactersモードのユーザー設定、関係性、Embedding長期記憶
  • 翻訳専用モード

Desktop Agent

Tauri版のAgentモードでは、MCPツールに加えて以下のネイティブツールを利用できます。

  • テキストファイルの読み込み・書き込み
  • ディレクトリ一覧の取得
  • ローカルターミナルコマンドの実行
  • コマンド、終了コード、標準出力、標準エラーのログ表示
  • タスクプランと進捗の表示
  • 会話ごとのプロジェクトディレクトリ
  • 設定可能なツール連続呼び出し上限(最大50ラウンド)
  • ネイティブ確認ダイアログ

AgentのTrust modeはSettings → Generationから変更できます。

Mode Behavior
コード演習のみ自動許可 コード関連のファイル操作と安全な確認コマンドを自動許可し、それ以外は確認します。
全部任せる ネイティブ操作を確認なしで実行します。強い権限なので注意してください。
毎回確認する ネイティブ操作ごとに確認ダイアログを表示します。

Requirements

  • Node.js 24以降
  • pnpm 11以降
  • Rust stable
  • Tauri 2のプラットフォーム依存パッケージ

Fedoraでは以下をインストールします。

sudo dnf install -y \
  webkit2gtk4.1-devel \
  librsvg2-devel \
  libsoup3-devel \
  javascriptcoregtk4.1-devel

Setup

pnpm install

Web development

pnpm dev

ブラウザで http://localhost:5173 を開きます。

Desktop development

pnpm tauri dev

Build

pnpm run build
pnpm tauri build

Configuration

Settingsから以下を設定できます。

  • OpenAI互換APIのEndpoint URL
  • API keyとモデル
  • 会話同期トークン
  • Temperature、システムプロンプト、タイトル自動生成
  • Embeddingモデルと長期記憶
  • AgentのTrust mode
  • テーマ
  • MCPサーバー

開発時のAPIリクエストは、Viteの /nagi-api プロキシを経由します。既定の接続先は https://onari.c30.life です。変更する場合は環境変数を利用できます。

VITE_NAGI_PROXY_TARGET=http://localhost:6789 pnpm dev

Conversation storage

  • ブラウザ内ではlocalStorageをオフライン用のキャッシュとして使用します。
  • 開発サーバーでは.nagi-data/nagi.sqliteへ会話を保存します。
  • 同期トークンはブラウザのlocalStorageに保存され、サーバーではSHA-256ハッシュをキーとして会話を分離します。
  • .nagi-data/、SQLiteファイル、APIキー、環境ファイルはGit管理対象外です。

現状のSQLite同期APIはVite開発サーバーのMiddlewareとして実装されています。本番利用では、同等のAPIを永続稼働するバックエンドへ移してください。

Security

Agentモードのファイル操作とターミナル実行は、ユーザー権限でローカル環境へアクセスします。

  • 通常は「コード演習のみ自動許可」または「毎回確認する」を推奨します。
  • 「全部任せる」は信頼できるモデル・MCPサーバー・プロンプトでのみ利用してください。
  • API key、同期トークン、個人データをリポジトリへコミットしないでください。

Main structure

src/                  Vue UI
src/components/       Image viewer components
src/composables/      Vue composables
src-tauri/            Tauri 2 / Rust native layer
vite.config.js        Vite proxy and development SQLite API

License

MIT