Proma is a local-first AI desktop application that combines multi-model chat, a general-purpose agent, workspaces, skills, MCP servers, remote chat bridges, and memory in one client. Chat handles questions, explanations, translation, attachment summaries, and side-by-side comparison of several models; the agent handles work that changes files, runs multi-step research, or needs shell, Git, and project context. Sessions, workspaces, attachments, configuration, and skills are stored under ~/.proma/ as JSON and JSONL files, with no local database.
Agent mode runs entirely on the built-in Pi Agent Runtime, built from @earendil-works/pi-coding-agent, pi-agent-core, and pi-ai, and enabled model channels register dynamically as Pi providers. It supports workspace isolation, permission modes, file operations, streamed long-running tasks, plan confirmation, and follow-up questions, and complex work can be split into trackable collaborating sub-agents whose calls and results appear in the message stream. Sessions from the earlier third-party runtime remain readable but cannot be continued, forked, or rewound.
Each project configures its own skills and MCP servers over stdio or HTTP, and can declare trusted project instructions in an AGENTS.md file, with older CLAUDE.md configuration migrated automatically. A managed built-in browser lets the agent open pages, read page structure, click and fill controls, switch tabs, and reach local development servers, covering logged-in pages, dynamic content, and local HTML previews. Feishu and Lark bot bridges, with DingTalk and WeChat entry points, let a phone or group chat trigger workflows on the machine.
| Channel type | Chat | Pi Agent |
|---|---|---|
| Anthropic and Anthropic-compatible | yes | yes |
| DeepSeek, Kimi, Zhipu coding plans, MiniMax, Xiaomi MiMo and other Anthropic-protocol channels | yes | yes |
| OpenAI, OpenAI Responses, Google, Zhipu, Doubao, Qwen | yes | yes |
| Custom OpenAI-compatible endpoints | yes | yes |
| ChatGPT subscription over Codex OAuth | no | yes |
| xAI subscription over Grok OAuth | no | yes |
The desktop shell is built on Electron with React, Jotai state, Tailwind CSS and Radix UI, and a Bun-based build. It adds automatic updates, proxy settings, file preview, global shortcuts, a quick-task window, an agent status indicator, streaming voice input usable inside and outside the app, and light, dark, and system themes.
Features
- Chat mode: multi-model conversation, attachment parsing, image input, Markdown, Mermaid, KaTeX and code highlighting, side-by-side replies, system prompts, and context management
- Agent mode: workspace isolation, permission modes, file operations, streamed long tasks, plan confirmation, and follow-up questions on the Pi runtime
- Built-in browser automation: the agent drives a managed browser to open pages, inspect structure, click and fill controls, switch tabs, and preview local development servers
- Collaborating sub-agents: complex tasks split into trackable sub-agents and tasks with visible calls and results
- Skills and MCP: per-project skills and stdio or HTTP MCP servers, plus trusted project instructions from AGENTS.md
- Remote bridges: Feishu and Lark bots with DingTalk and WeChat entry points to trigger local workflows from a phone or group chat
- Shared memory: chat and agent share workspace memory, with changes tracked and a refresh prompt in the interface
- Local-first storage: conversations, workspaces, attachments, configuration, and skills held as JSON and JSONL under ~/.proma/
- Desktop features: automatic updates, proxy settings, file preview, global shortcuts, a quick-task window, voice input, and light, dark, or system themes
- Platform builds: macOS on Apple Silicon and Intel, Windows, a Debian and Ubuntu package, and a Linux AppImage
