Persona
Persona
ノート、タスク、そしてあなたのファイルを認識するAIチャット。すべては、あなたのマシン上のプレーンなMarkdownの1つのフォルダに保存されます。
$ personaこれでローカルサーバーが起動し、ブラウザでワークスペースが開きます。アカウントもクラウドもデータベースも不要です。たとえ明日このプロジェクトが消えても、すべてのノートとタスクは、どんなアプリでも開ける .md ファイルとして残っています。
なぜ別のノートアプリなのか?
素晴らしいソフトウェアと、自分のデータを所有することの間で、私はいつも選択を迫られていたからです。
Persona | Obsidian | Notion | Logseq | |
データ形式 | プレーンなMarkdown | Markdown + プラグイン | プロプライエタリなクラウドDB | org-mode/Markdown |
完全オフラインで動作 | ✅ | ✅ | ❌ | ✅ |
内蔵タスク | ✅ | プラグイン | ✅ | 基本 |
ローカルAIチャット | ✅ Ollama、設定不要 | クラウドAPIプラグイン経由 | 自社クラウド | ❌ |
音声入力 | ✅ ローカルSTT | ❌ | ❌ | ❌ |
オープンソース | ✅ MIT | フリーミアム、クローズド | クローズド | ✅ AGPL |
私は2年間、毎日Obsidianを使っていました。プラグインが30個くらいになった頃、ノート環境のメンテナンスに時間を取られ、実際に書くことよりも手間がかかっていることに気づきました。Personaは、重要なことがすべてすぐに機能し、データ形式に決して縛られないバージョンを目指した試みです。
Related MCP server: MindOS
できること
Markdownノート — お好みのフォルダ構成でディスク上に保存されるファイル。任意のアプリで編集できます。Personaはファイルシステムを監視して追従します
タスク —
fix login bug #backend !! fridayと書くと、優先度・プロジェクトタグ・期日をfrontmatterに整理します。カンバンビュー付きAIチャット — 起動中なら Ollama に自動接続(無料・プライベート)。またはOpenAI互換APIを使用できます。質問に答えるだけでなく、ノートの作成やタスクの管理も可能です
セマンティック検索 — 埋め込みはローカルで計算され、ワークスペース内に保存されます
音声入力 — Apple Siliconでparakeet.cppを使ったローカル音声認識
MCPサーバー — Claude Code、Cursor、その他のエージェントがワークスペースを直接読み書きできます
スクリーンショット
クイックスタート(macOS)
Node.js 20+(brew install node)と git が必要です。
git clone https://github.com/jayamitkatariya/personacli.git
cd personacli
npm install --allow-scripts=persona
npm install -g . --allow-scripts=persona
persona初回実行時は、ワークスペースフォルダの選択と、任意でAIモデルの接続を案内します。その後は persona を実行するだけです。
AIを無料・プライベートで使うには
brew install ollama && ollama pull llama3.2
persona # detects ollama automatically, no configpersona doctor # health check: node, workspace, server, AI config
persona path # print workspace pathアップデート:
cd personacli && git pull
npm install --allow-scripts=persona
npm install -g . --allow-scripts=personaアンインストール:
npm uninstall -g persona
pkill -f "dist/server/index"
rm -rf ~/.personaトラブルシューティングの詳細は、このREADMEの後半にあります。
技術スタック
TypeScriptでエンドツーエンドを構成。React UIはHonoサーバーが配信し、ビルドはVite。検索にはローカル埋め込み、音声にはparakeet.cpp、チャットにはOllamaまたは任意のOpenAI互換エンドポイントを使用。あえて地味な技術を採用しています。
コントリビューション
IssueとPRを歓迎します。特に実際の使用でのバグ報告が助かります。何かおかしいと感じたら、それはおそらく実際におかしいのです。教えてください。
ライセンス
Personaが少しでも役に立つなら、スターを付けていただけると他の人にも見つけてもらいやすくなります。
オプションの追加機能
追加機能 | インストール方法 | 得られるもの |
| 無料・プライベートなローカルAI — 自動検出され、APIキー不要 | |
|
| 音声入力(チャットでの録音+文字起こし) |
parakeetモデル | 音声入力用のローカル音声認識モデル |
音声入力を使うには、Personaにparakeetのバイナリとモデルを指定します:
export PERSONA_STT_BIN=/path/to/parakeet-cli
export PERSONA_STT_MODEL=/path/to/model.gguf
personaトラブルシューティング
症状 | 対処法 |
|
|
| npm ≥11.16 はパッケージスクリプトをデフォルトでブロックします — |
| npmのプレフィックスが書き込み可能ではありません — nvm または Homebrew でNodeをインストールしてください(最後の手段として |
サーバーが起動しない / ポートエラー |
|
チャットが「モデルが設定されていません」と表示する | 設定 → AI(⌘,)を開いてプロバイダーを追加するか、Ollamaをインストールしてください |
| サーバーがすでに起動している可能性があります — ブラウザで⌘Kを押すか、 |
音声入力が失敗する |
|
初回実行
persona を初めて実行すると、ブラウザで短いセットアップガイドが3つのステップを案内します:
ワークスペース — Personaがノートを保存する場所(デフォルトは
~/Persona)。Notes/、Projects/、.persona/tasks/が自動的に作成されます。AI — 任意。実行中の Ollama を自動検出して設定なしで接続します。それ以外の場合は任意のOpenAI互換APIキーを追加します。いつでもスキップして、後で設定 → AI(⌘,)で設定できます。
完了 —
Notes/Welcome.mdというノートが、ワークスペースのガイドツアーとして作成されます。3つのビュー、キーボードショートカット、ターミナルコマンドが含まれます。コマンドパレット(⌘K → 「Welcomeノートを開く」)からいつでも再度開けます。
既存のファイルは決して上書きされません。ワークスペースフォルダにすでにファイルがある場合、それらはそのままサイドバーに表示され、ウェルカムノートは一度だけ作成されます。
コマンド
コマンド | 説明 |
| 必要に応じてサーバーを起動し、ブラウザでワークスペースを開く |
| 必要に応じてサーバーを起動し、ブラウザでワークスペースを開く |
| 今日のジャーナルノート( |
| ブラウザを開かずに(自然言語で)タスクを作成する |
| オープンなタスクをAIにレビューさせる(提案のみ) |
| ターミナルからAIとチャット。回答はインラインでストリーム表示。 |
| 今日のジャーナルノートを作成/開く。 |
| ターミナルからファイルとタスクを検索(あいまい+セマンティック) |
| 現在のワークスペースパスを表示する |
| ヘルスチェック:node、ワークスペース、サーバー、AI設定 |
| Claude Code、Hermes、CursorなどのためにPersonaをMCPサーバー(stdio)として実行する。 |
何がどこに保存されるか
~/Persona/ ← your workspace (choose it on first run)
├── Notes/ ← plain Markdown, organised however you like
├── Projects/
│ └── my-project/
│ └── PRD.md
├── Imported/ ← notes brought in from other apps
│ ├── obsidian/
│ ├── bear/
│ ├── roam/
│ ├── notion/
│ └── plain/
└── .persona/
├── tasks/ ← tasks are Markdown files with frontmatter
├── agents/ ← background agent runs (JSON)
├── pins.json ← your pinboard (pinned notes & tasks)
└── embeddings/ ← local semantic-search index (notes, not secrets)タスクも単なるファイルです:
---
type: task
status: todo
priority: high
due: 2026-08-12
project: Personal
---
Finish Persona PRD任意のエディターやFinderで編集できます。Personaがファイルシステムを監視し、自動的に同期します。
ワークスペース
ノート — ファイルツリー + Markdownエディター(CodeMirror)。オートセーブ、保存 状態、ライブプレビュー(編集 / 分割 / プレビュー)、名前の変更、移動、複製、 削除、ドラッグ & ドロップ。複数のノートをタブで同時に開けます(⌘Wで閉じる、 ⌘⇧[ / ⌘⇧] で切り替え)。各タブは独自のスクロール位置と元に戻す履歴を保持します。 AI生成タグ: ⌘S(または ✨ ボタン)を押すと Persona がノートにタグを提案し、YAMLフロントマターとして自動的に追加します。
タスク — 高速な個人タスクリスト。クイック追加ボックスに
Buy domain tomorrow #personal !と入力すると、日付、プロジェクト、優先度が自動で解析されます。 繰り返しタスクにも対応:Water plants every weekは完了すると 次の期限日付きで自動的に再オープンします。トリアージ を押す(またはpersona triageを実行)と、AIが未完了タスクをレビューし — 誤った優先度、 期限の欠落、タグなしプロジェクト、古いタスク、重複を検出 — 各提案をワンクリックで適用します。承認なしにタスクを変更することはありません。ピンボード — 重要なノートやタスクをピン留めすると(ファイルツリーまたはタスク行の ⋯ メニュー)、 すべてのタブでサイドバーの先頭に固定されます。 ピンをクリックするとそこに直接ジャンプし、ホバーでピン留めを解除できます。 ピンは
.persona/pins.jsonに保存され、再起動後も保持されます。チャット — ワークスペースを参照して操作できるAI。
@file.md、@folder、@tasksで コンテキストを添付して、実際の作業について質問できます。 AIはノートやフォルダの作成、編集、移動、削除、およびタスクの作成、完了、更新、削除を 代行することもできます — 実行した各アクションには小さなステータスチップが表示されます。エージェント — 複数ステップの作業を行うバックグラウンドAI。Personaに 「受信トレイのノートを整理して」のようなタスクを与えると、チャットを開いたままにせず、 ツールを使ってライブで処理を進めます。実行内容は
.persona/agents/に保存され、 キャンセル、再試行、削除が可能です。セマンティック検索 — ノートはローカルで埋め込み化され、意味で検索されます。 そのため「キャンプについて書いたあれ」のような検索でも、森やテントや雨について 言及しているノートを見つけられます — たとえ「キャンプ」という言葉がなくても。 この機能はコマンドパレット(⌘P)、
persona search、チャットを支えています。 コンテキストを添付しない場合、アシスタントが質問に最も関連するノートを自動的に取得し、引用します。モジュール — フォーカス、ジャーナル、今日のあれこれ、エージェント は 設定 → モジュール から切り替えられます。 有効なモジュールはサイドバーに表示され、無効なモジュールは ⌘K から引き続きアクセスできます。
インポート — Obsidian、Bear、Roam、Notion、またはプレーンフォルダの書き出しを 設定 → インポート から取り込めます。すべてのデータは
Imported/<source>/の下に配置され、 既存のノートを上書きすることはありません。
キーボード
ショートカット | アクション |
| コマンドパレット |
| ファイル/タスクのクイック検索 |
| ノート / タスク / チャット |
| 新規ファイル |
| 新規タスク |
| 新規下書きノート |
| タブを閉じる |
| 前のタブ / 次のタブ |
| 保存 |
| 設定 |
| サイドバーの表示切り替え |
| パレット / モーダルを閉じる |
AI
OpenAI 互換のプロバイダーなら何でも使えます — OpenAI、OpenRouter、Ollama、ローカルモデル、カスタムエンドポイント。プロバイダー、ベースURL、モデル、APIキーは 設定 → AI で設定します。キーはmacOS Keychainに保存され(0600パーミッションの設定ファイルにフォールバック)、選択したプロバイダーにのみ送信されます。
Ollamaならセットアップ不要。 ローカルのOllamaインスタンスが実行中の場合(http://127.0.0.1:11434、または $OLLAMA_HOST が指す場所)、Personaは自動的に検出し、APIキーや設定なしで接続します。インストール済みのモデルから適切なチャットモデルを選びます。明示的に設定したプロバイダーは常に自動検出より優先されます。persona doctor は検出された内容を報告します。
チャットアシスタントは書き込み対応です。ノートの作成・編集、フォルダの作成、ファイルの移動・名前変更、タスクの管理(作成、更新、完了、削除)ができます。ファイルやフォルダの削除は、明示的に依頼した場合のみ行います。ツールをサポートしていないプロバイダーでは、自動的に読み取り専用チャットにフォールバックします。
セマンティック検索。 ノートはチャンク分割され、ローカルで埋め込み化されて .persona/embeddings/ に保存されます。埋め込みは以下の優先順位で取得されます:
明示的な埋め込みベースURL(オプション、設定 → AI)— 埋め込み対応プロバイダー(OpenRouter、SiliconFlow、ローカルOllamaなど)を指定します。
実行中のローカルOllama(埋め込みモデルあり) — 例:
ollama pull all-minilmやnomic-embed-text— APIキーは不要です。それ以外の場合は、チャットプロバイダーのエンドポイント。
インデックスは、サーバー起動時、APIキーや埋め込みモデルの変更時にバックグラウンドで再構築され、ノートが保存されるたびに増分更新されます。キーワード検索は完全一致で引き続き優先されます。セマンティック検索の結果は、価値がある場合に「Best matches」として表示されます。埋め込みソースがない場合、検索は自動的にキーワードのみにフォールバックします。
音声入力(macOS)。 チャットボックスには、parakeet.cpp によるローカルの音声テキスト変換用のマイクボタンがあります。ffmpeg(brew install ffmpeg)と、parakeet互換のGGUFモデルが必要です。macOS用のビルド済み parakeet-cli を リリースページ から入手し、PERSONA_STT_MODEL=/path/to/model.gguf と PERSONA_STT_BIN=/path/to/parakeet-cli でPersonaにそれぞれ指定します(Apple SiliconではモデルはMetal上で動作します)。
外観
設定 → 外観 でライト、ダーク、システムテーマを選択できます。テーマは設定ファイルに保存され、System に設定すると macOS の外観に追従します。
開発
npm run dev # Vite dev server (5173) + API server (4321), hot reload
npm run build # production build: server + CLI + web app
npm run typecheckアドホックなテストスクリプト(事前にビルドが必要):
npm run build
node scripts/tool-test.mjs # unit-level tests for AI tools, tasks, fs
node scripts/mcp-test.mjs # E2E: MCP server via stdio (Persona tools over MCP)
node scripts/e2e-chat-test.mjs # E2E: AI chat performs file & task operations
node scripts/e2e-chat2-test.mjs # E2E: chat reads notes and cites sourcesE2Eスクリプトは、使い捨てワークスペースに対してサーバーが実行されていることを前提としています(例: 別のターミナルで HOME=$PWD/.testhome npm run dev:server を実行すると、サーバーの設定が .testhome/.persona/ に置かれます)。
MCP — Claude Code、Hermes、Cursor などから Persona を使う
PersonaはMCPサーバーです。任意のMCPクライアントがあなたのワークスペースを読み書きできます:
persona mcp --help
claude mcp add persona -- persona mcp # Claude Code
# Hermes/Cursor/Windsurf: { "mcpServers": { "persona": { "command": "persona", "args": ["mcp"] } } }ツール: 15(list_folder, read_note, create_note, write_note, append_note, create_folder, move_file, rename_file, delete_file, list_tasks, create_task, update_task, delete_task, search, get_workspace_info)+ リソース(persona://workspace, persona://file/{path})+ Streamable HTTP(http://127.0.0.1:4321/mcp)。
完全なセットアップ → docs/mcp.md。
コントリビューション
issue または PR を開いてください — バグ報告、機能アイデア、質問はすべて歓迎します。ガイドライン:
ローカルファーストの約束を守る: すべてがプレーンファイルであり、アカウントもクラウドもベンダーロックインもないこと。
サーバーは、明示的に設定したAIプロバイダー以外にあなたのファイルを送信してはなりません。埋め込みインデックスはローカルです。
PRを開く前に
npm run typecheckとnpm run buildを実行し、サーバーの動作に変更を加える場合はscripts/テストを追加してください。パッケージはMITライセンスです。コントリビュートすることで、同じ条件に同意したことになります。
アーキテクチャ
persona CLI ── spawns ──▶ local Hono server (127.0.0.1:4321 — first free port)
│ REST API + SSE events
├─ filesystem (chokidar watcher)
├─ tasks (Markdown + frontmatter)
├─ AI (OpenAI-compatible, streaming)
└─ embeddings (semantic index, local JSON)
│
▼
React app (prebuilt, served by the server)スター履歴
This server cannot be deployed
Maintenance
Related MCP Connectors
Notes and memory assistant: one Markdown vault that Claude, ChatGPT and any MCP client can share.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes local persistent memory as an MCP server with Markdown storage, PARA organization, Zettelkasten linking, and SQLite FTS5 search. Enables Claude and other MCP-compatible agents to store, organize, and retrieve knowledge with context-based recommendations through the Olima association engine.10 npm2MIT
- AlicenseNot gradedqualityAmaintenanceLocal-first knowledge base MCP server. Lets AI agents (Claude Code, Cursor, etc.) read and write your personal knowledge base through 20 MCP tools. Zero cloud dependency — all files stay on your machine.1,758 npm704MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for AI agents to read, write, and organize notes in a local-first, human-in-the-loop note-taking app.1 npm2MIT
- AlicenseNot gradedqualityAmaintenanceLocal-first MCP server providing persistent markdown memory with persona engine and fast search, designed to unify AI assistant memory across Claude Code, Cowork, and Dispatch.25 npm1MIT