Persona
Persona
Заметки, задачи и ИИ-чат, который знает ваши файлы. Всё хранится в одной папке с обычным Markdown на вашем компьютере.
$ personaЭто запускает локальный сервер и открывает ваше рабочее пространство в браузере. Никаких
аккаунтов, никакого облака, никакой базы данных. Если бы этот проект исчез завтра,
у вас всё равно остались бы все заметки и задачи в виде .md-файлов, которые можно открыть
чем угодно.
Почему ещё одно приложение для заметок?
Потому что я устал выбирать между удобным софтом и владением своими данными:
Persona | Obsidian | Notion | Logseq | |
Формат данных | обычный Markdown | Markdown + плагины | проприетарная облачная БД | org-mode/Markdown |
Полностью офлайн | ✅ | ✅ | ❌ | ✅ |
Встроенные задачи | ✅ | плагин | ✅ | базовые |
Локальный ИИ-чат | ✅ Ollama, без настройки | через облачные API-плагины | их облако | ❌ |
Голосовой ввод | ✅ локальный STT | ❌ | ❌ | ❌ |
Открытый исходный код | ✅ MIT | freemium, закрытый | закрытый | ✅ AGPL |
Я ежедневно пользовался Obsidian два года. Где-то на тридцатом плагине я понял, что поддерживаю настройку заметок больше, чем пишу в них. Persona — моя попытка сделать версию, где всё важное просто работает из коробки, а формат данных никогда не берёт вас в заложники.
Related MCP server: MindOS
Что вы получаете
Заметки в Markdown — файлы на диске в любой структуре папок, которая вам нравится. Редактируйте их из любого приложения; Persona следит за файловой системой и не отстаёт
Задачи — напишите
fix login bug #backend !! friday, и он разложит приоритет, тег проекта и срок выполнения в frontmatter. Включено канбан-представлениеИИ-чат — автоматически подключается к Ollama, если он запущен (бесплатно и приватно), или используйте любой OpenAI-совместимый API. Может создавать заметки и управлять задачами, а не только отвечать на вопросы
Семантический поиск — эмбеддинги вычисляются локально и хранятся внутри рабочего пространства
Голосовой ввод — локальное распознавание речи через parakeet.cpp на Apple Silicon
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Первый запуск проведёт вас через выбор папки рабочего пространства и, при желании,
подключение ИИ-модели. После этого достаточно просто persona.
Хотите, чтобы ИИ работал бесплатно и приватно?
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-интерфейс обслуживается Hono-сервером, Vite для сборки. Локальные эмбеддинги для поиска, parakeet.cpp для голоса, Ollama или любой OpenAI-совместимый endpoint для чата. Намеренно скучные технологии.
Участие в разработке
Приветствуются issues и PR, особенно баг-репорты из реального использования. Если что-то кажется неправильным, скорее всего так и есть; сообщите мне.
Лицензия
Если Persona помогает вам сохранить рассудок, звёздочка поможет другим людям найти проект.
Дополнительные возможности
Дополнение | Установка | Что вы получаете |
| Бесплатный приватный локальный ИИ — определяется автоматически, без API-ключа | |
|
| Голосовой ввод (запись + транскрибация в чате) |
parakeet model | Локальная модель распознавания речи для голосового ввода |
Для голосового ввода укажите Persona путь к вашему бинарнику parakeet и модели:
export PERSONA_STT_BIN=/path/to/parakeet-cli
export PERSONA_STT_MODEL=/path/to/model.gguf
personaРешение проблем
Симптом | Решение |
| Повторите |
| npm ≥11.16 блокирует скрипты пакетов по умолчанию — установите с |
| Ваш npm prefix не доступен для записи — установите Node через nvm или Homebrew (или используйте |
Сервер не запускается / ошибки порта | Выполните |
Чат говорит «no model configured» | Откройте Настройки → ИИ (⌘,) и добавьте провайдера или установите Ollama |
Вы запускаете | Сервер, возможно, уже запущен — нажмите ⌘K в браузере или завершите его командой |
Голосовой ввод не работает |
|
Первый запуск
При первом запуске persona короткий мастер настройки проведёт вас через три
шага в браузере:
Рабочее пространство — где Persona хранит ваши заметки (по умолчанию
~/Persona). ПапкиNotes/,Projects/и.persona/tasks/создаются автоматически.ИИ — необязательно. Запущенный Ollama определяется и подключается без настройки; в противном случае добавьте любой OpenAI-совместимый API-ключ. Можно пропустить в любой момент и настроить позже в Настройки → ИИ (⌘,).
Готово — создаётся заметка
Notes/Welcome.mdкак экскурсия по рабочему пространству: три вида, сочетания клавиш и терминальные команды. Откройте её снова в любой момент из палитры команд (⌘K → «Открыть приветственную заметку»).
Ничего никогда не перезаписывается: если в папке рабочего пространства уже есть файлы, они отображаются на боковой панели без изменений, а приветственная заметка создаётся только один раз.
Команды
Команда | Что делает |
| Запустить сервер при необходимости, открыть рабочее пространство в браузере |
| Запустить сервер при необходимости, открыть рабочее пространство в браузере |
| Добавить строку в сегодняшнюю заметку-журнал ( |
| Создать задачу (на естественном языке) без открытия браузера |
| Попросить ИИ просмотреть ваши открытые задачи (только предложения) |
| Общаться с ИИ из терминала, ответ выводится по мере генерации. Прикрепляйте файлы/папки/задачи с помощью |
| Создать/открыть сегодняшнюю заметку-журнал; |
| Искать файлы и задачи из терминала (нечёткий + семантический поиск) |
| Показать путь к текущему рабочему пространству |
| Проверка состояния: node, рабочее пространство, сервер, ИИ-конфигурация |
| Запустить Persona как MCP-сервер (stdio) для Claude Code, Hermes, Cursor и др. См. |
Что где находится
~/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 следит за файловой системой и синхронизирует автоматически.
Рабочие пространства
Write — дерево файлов + редактор Markdown (CodeMirror). Автосохранение, статус сохранения, предпросмотр в реальном времени (Edit / Split / Preview), переименование, перемещение, дублирование, удаление, drag & drop. Открывайте несколько заметок одновременно во вкладках (⌘W — закрыть, ⌘⇧[ / ⌘⇧] — переключаться); у каждой вкладки сохраняются собственная позиция прокрутки и история отмены. Теги, созданные ИИ: нажмите ⌘S (или кнопку ✨) — и Persona предложит теги для вашей заметки, которые автоматически добавляются в YAML frontmatter.
Tasks — быстрый личный список задач. Введите
Buy domain tomorrow #personal !в поле быстрого добавления — даты, проекты и приоритет будут разобраны автоматически. Повторяющиеся задачи тоже работают:Water plants every weekсама открывается заново со следующей датой выполнения, когда вы её завершаете. Нажмите Triage (или запуститеpersona triage) — и ИИ проверит ваши открытые задачи: отметит неверные приоритеты, отсутствующие сроки, проекты без тегов, устаревшие задачи и дубликаты — и применит каждое предложение одним кликом. Он никогда не изменит задачу без вашего одобрения.Pinboard — закрепляйте важные заметки или задачи (меню ⋯ в дереве файлов или в строке задачи), и они остаются закреплёнными вверху боковой панели на каждой вкладке. Нажмите на закреп, чтобы сразу перейти к нему; наведите указатель, чтобы открепить. Закрепы хранятся в
.persona/pins.jsonи переживают перезапуски.Chat — ИИ, который видит ваше рабочее пространство и может действовать в нём. Прикрепите контекст с помощью
@file.md,@folderили@tasksи спрашивайте о своей реальной работе. ИИ также может создавать, редактировать, перемещать и удалять заметки и папки, а также создавать, завершать, обновлять и удалять задачи от вашего имени — вы увидите небольшой статус-индикатор для каждого выполняемого действия.Agents — фоновые запуски ИИ для многошаговой работы. Дайте Persona задачу вроде «organize my inbox notes» — и она проработает её с помощью инструментов в реальном времени, не требуя держать чат открытым. Запуски сохраняются в
.persona/agents/; их можно отменить, повторить или удалить.Semantic search — ваши заметки локально преобразуются в эмбеддинги и ищутся по смыслу: «та штука про кемпинг, которую я писал» найдёт заметку, в которой упоминаются лес, палатка и дождь, — даже если в ней нет слова «кемпинг». Он обеспечивает работу палитры команд (⌘P),
persona searchи чата: когда вы не прикрепляете контекст, ассистент автоматически подтягивает заметки, наиболее релевантные вашему вопросу, и цитирует их.Modules — Focus, Journal, Today's Stuff и Agents можно включать и отключать в Настройки → Modules; включённые модули отображаются в боковой панели, отключённые остаются доступными через ⌘K.
Import — импортируйте экспорт Obsidian, Bear, Roam, Notion или обычных папок через Настройки → Import. Всё попадает в
Imported/<source>/и никогда не перезаписывает существующие заметки.
Клавиатура
Shortcut | Action |
| Палитра команд |
| Быстрый поиск файлов/задач |
| Write / Tasks / Chat |
| Новый файл |
| Новая задача |
| Новый черновик |
| Закрыть вкладку |
| Предыдущая / следующая вкладка |
| Сохранить |
| Настройки |
| Показать / скрыть боковую панель |
| Закрыть палитру / модальное окно |
AI
Подойдёт любой OpenAI-совместимый провайдер — OpenAI, OpenRouter, Ollama, локальные модели, собственные эндпоинты. Настройте провайдера, базовый URL, модель и API-ключ в Настройки → AI. Ключ хранится в связке ключей macOS (при отсутствии — в конфигурационном файле с правами 0600) и отправляется только выбранному вами провайдеру.
Никакой настройки с Ollama. Если запущен локальный экземпляр Ollama (http://127.0.0.1:11434 или там, куда указывает $OLLAMA_HOST), Persona обнаруживает его автоматически и подключается без API-ключа и без конфигурации. Она выбирает подходящую чат-модель из установленных у вас. Явно настроенный провайдер всегда имеет приоритет над автоопределением, а persona doctor сообщает, что было обнаружено.
Чат-ассистент умеет выполнять запись: он может создавать и редактировать заметки, создавать папки, перемещать и переименовывать файлы, а также управлять вашими задачами — создавать, обновлять, завершать и удалять их. Он удаляет файлы или папки, только если вы явно попросите об этом. Провайдеры без поддержки инструментов автоматически переходят в режим чата только для чтения.
Semantic search. Заметки разбиваются на фрагменты, локально преобразуются в эмбеддинги и сохраняются в .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) и GGUF-модель, совместимая с parakeet. Скачайте готовый parakeet-cli для macOS со страницы релизов и укажите Persona оба компонента с помощью PERSONA_STT_MODEL=/path/to/model.gguf и PERSONA_STT_BIN=/path/to/parakeet-cli (на Apple Silicon модель работает на Metal).
Внешний вид
Светлая, тёмная или системная тема — в Настройки → Внешний вид. Тема сохраняется в вашей конфигурации и следует за оформлением macOS, когда установлено значение System.
Разработка
npm run dev # Vite dev server (5173) + API server (4321), hot reload
npm run build # production build: server + CLI + web app
npm run typecheckAd-hoc тестовые скрипты (нужна предварительная сборка):
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 — используйте Persona из Claude Code, Hermes, Cursor и т. д.
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 — приветствуются сообщения об ошибках, идеи функций и вопросы. Рекомендации:
Сохраняйте принцип local-first: всё — это простые файлы, никаких аккаунтов, облака и привязки.
Сервер никогда не должен отправлять ваши файлы кому-либо, кроме явно настроенного вами ИИ-провайдера; индекс эмбеддингов локальный.
Перед открытием 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