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)スター履歴
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Related MCP Connectors
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.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
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.312MIT
- 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,758664MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for AI agents to read, write, and organize notes in a local-first, human-in-the-loop note-taking app.62MIT
- 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.211MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jayamitkatariya/personacli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server