Skip to main content
Glama

Persona

GitHub stars License: MIT Node macOS

ノート、タスク、そしてあなたのファイルを認識する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 config
persona 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を歓迎します。特に実際の使用でのバグ報告が助かります。何かおかしいと感じたら、それはおそらく実際におかしいのです。教えてください。

ライセンス

MIT


Personaが少しでも役に立つなら、スターを付けていただけると他の人にも見つけてもらいやすくなります。

オプションの追加機能

追加機能

インストール方法

得られるもの

Ollama

brew install ollama && ollama pull llama3.2

無料・プライベートなローカルAI — 自動検出され、APIキー不要

ffmpeg

brew install ffmpeg

音声入力(チャットでの録音+文字起こし)

parakeetモデル

parakeet.cpp releases

音声入力用のローカル音声認識モデル

音声入力を使うには、Personaにparakeetのバイナリとモデルを指定します:

export PERSONA_STT_BIN=/path/to/parakeet-cli
export PERSONA_STT_MODEL=/path/to/model.gguf
persona

トラブルシューティング

症状

対処法

persona: command not found

npm install -g . --allow-scripts=persona を再度実行し、npm config get prefixPATH に含まれているか確認してください

npm warn allow-scripts またはインストール後に persona バイナリがない

npm ≥11.16 はパッケージスクリプトをデフォルトでブロックします — --allow-scripts=persona を付けてインストールするか(または npm config set allow-scripts=persona --location=user を実行して)再インストールしてください

npm install -g .EACCES で失敗する

npmのプレフィックスが書き込み可能ではありません — nvm または Homebrew でNodeをインストールしてください(最後の手段として sudo を使用)

サーバーが起動しない / ポートエラー

persona doctor を実行し、~/.persona/logs/server.log を確認してください

チャットが「モデルが設定されていません」と表示する

設定 → AI(⌘,)を開いてプロバイダーを追加するか、Ollamaをインストールしてください

persona を実行しても何も起きない

サーバーがすでに起動している可能性があります — ブラウザで⌘Kを押すか、pkill -f "dist/server/index" で終了して再試行してください

音声入力が失敗する

ffmpeg がインストールされていて、PERSONA_STT_MODEL が有効なGGUFを指している必要があります

初回実行

persona を初めて実行すると、ブラウザで短いセットアップガイドが3つのステップを案内します:

  1. ワークスペース — Personaがノートを保存する場所(デフォルトは ~/Persona)。Notes/Projects/.persona/tasks/ が自動的に作成されます。

  2. AI — 任意。実行中の Ollama を自動検出して設定なしで接続します。それ以外の場合は任意のOpenAI互換APIキーを追加します。いつでもスキップして、後で設定 → AI(⌘,)で設定できます。

  3. 完了Notes/Welcome.md というノートが、ワークスペースのガイドツアーとして作成されます。3つのビュー、キーボードショートカット、ターミナルコマンドが含まれます。コマンドパレット(⌘K → 「Welcomeノートを開く」)からいつでも再度開けます。

既存のファイルは決して上書きされません。ワークスペースフォルダにすでにファイルがある場合、それらはそのままサイドバーに表示され、ウェルカムノートは一度だけ作成されます。

コマンド

コマンド

説明

persona

必要に応じてサーバーを起動し、ブラウザでワークスペースを開く

persona open

必要に応じてサーバーを起動し、ブラウザでワークスペースを開く

persona note "text"

今日のジャーナルノート(Notes/YYYY-MM-DD.md)に行を追加する

persona task "Buy domain tomorrow #personal !!"

ブラウザを開かずに(自然言語で)タスクを作成する

persona triage

オープンなタスクをAIにレビューさせる(提案のみ)

persona ask "what's left on the PRD?"

ターミナルからAIとチャット。回答はインラインでストリーム表示。@file.md@folder@tasks でファイル/フォルダ/タスクを添付できる

persona today [--open]

今日のジャーナルノートを作成/開く。--open でブラウザを起動

persona search "query"

ターミナルからファイルとタスクを検索(あいまい+セマンティック)

persona path

現在のワークスペースパスを表示する

persona doctor

ヘルスチェック:node、ワークスペース、サーバー、AI設定

persona mcp

Claude Code、Hermes、CursorなどのためにPersonaをMCPサーバー(stdio)として実行する。docs/mcp.md を参照

何がどこに保存されるか

~/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>/ の下に配置され、 既存のノートを上書きすることはありません。

キーボード

ショートカット

アクション

⌘K

コマンドパレット

⌘P

ファイル/タスクのクイック検索

⌘1 ⌘2 ⌘3

ノート / タスク / チャット

⌘N

新規ファイル

⌘⇧N

新規タスク

⌘T

新規下書きノート

⌘W

タブを閉じる

⌘⇧[ ⌘⇧]

前のタブ / 次のタブ

⌘S

保存

⌘,

設定

⌘⇧B

サイドバーの表示切り替え

Esc

パレット / モーダルを閉じる

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/ に保存されます。埋め込みは以下の優先順位で取得されます:

  1. 明示的な埋め込みベースURL(オプション、設定 → AI)— 埋め込み対応プロバイダー(OpenRouter、SiliconFlow、ローカルOllamaなど)を指定します。

  2. 実行中のローカルOllama(埋め込みモデルあり) — 例: ollama pull all-minilmnomic-embed-text — APIキーは不要です。

  3. それ以外の場合は、チャットプロバイダーのエンドポイント。

インデックスは、サーバー起動時、APIキーや埋め込みモデルの変更時にバックグラウンドで再構築され、ノートが保存されるたびに増分更新されます。キーワード検索は完全一致で引き続き優先されます。セマンティック検索の結果は、価値がある場合に「Best matches」として表示されます。埋め込みソースがない場合、検索は自動的にキーワードのみにフォールバックします。

音声入力(macOS)。 チャットボックスには、parakeet.cpp によるローカルの音声テキスト変換用のマイクボタンがあります。ffmpegbrew install ffmpeg)と、parakeet互換のGGUFモデルが必要です。macOS用のビルド済み parakeet-cliリリースページ から入手し、PERSONA_STT_MODEL=/path/to/model.ggufPERSONA_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 sources

E2Eスクリプトは、使い捨てワークスペースに対してサーバーが実行されていることを前提としています(例: 別のターミナルで 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 typechecknpm 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.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes 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.
    31
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local-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
    664
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AI agents to read, write, and organize notes in a local-first, human-in-the-loop note-taking app.
    6
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local-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.
    21
    1
    MIT

Latest Blog Posts

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