Meeseeks.pre-alpha.demo.v2.mp4
Meeseeks runs right in your terminal, browser, or hosted as an API.
Meeseeks is an AI task agent assistant built on a single async tool-use loop driven by native bind_tools. The LLM decides which tools to call, can spawn sub-agents for parallel work, and synthesizes a final reply. It keeps a session transcript, compacts long histories, and stores summaries for continuity across longer conversations.
The web console provides a task orchestration frontend backed by the REST API. It supports session management, real-time event polling, tool selection, and execution trace viewing.
| Task detail page | Console landing page |
|---|---|
![]() |
![]() |
- (✅) Unified tool-use loop: A single async
ToolUseLoopwhere the LLM drives tool selection and execution via nativebind_tools. - (✅) Sub-agent spawning: Subtasks can be delegated to parallel sub-agents via
spawn_agent, managed by theAgentHypervisorcontrol plane. - (✅) Tool scoping & permissions: Sub-agents receive scoped tool access (allowlist/denylist filtered before binding). Permission policies gate all tool execution.
- (✅) Concurrency-aware execution: Tools are partitioned into concurrent-safe (parallel) and exclusive (sequential) batches with per-tool timeouts.
- (✅) Conversation fork & edit: Fork a session from any message (
fork_at_ts), edit and regenerate past turns, and override the model per-message.
- (✅) Session transcripts: Writes tool activity and responses to disk for continuity.
- (✅) Context compaction: Two-mode compaction (full/partial) with structured summaries, analysis scratchpad, and post-compact file restoration. Auto-compacts near the context budget using partial mode.
- (✅) Token awareness: Tracks context window usage and exposes budgets in the CLI.
- (✅) Selective recall: Builds context from recent turns plus a summary of prior events.
- (✅) Hierarchical instructions: Discovers CLAUDE.md from user, project, rules, and local levels with priority ordering. Injects git context (branch, status, recent commits) into the system prompt.
- (✅) Session listing hygiene: Filters empty sessions and supports archiving via the API.
- (✅) Tool registry: Discovers local tools and MCP tools via persistent connection pool with automatic reconnection and config change detection.
- (✅) Skills: Supports the Agent Skills open standard. Place
SKILL.mdfiles in~/.claude/skills/or.claude/skills/to teach the assistant reusable workflows. Skills can be invoked via/skill-nameslash commands or auto-activated by the LLM. - (✅) Configurable file editing: Two built-in edit mechanisms — Aider-style SEARCH/REPLACE blocks and per-file structured patch (
file_path/old_string/new_string). Select viaagent.edit_toolin config, or let the system auto-select based on model identity. Different models perform better with different formats; the choice is transparent to the rest of the stack. - (✅) Plugin system: Discover, install, and manage plugins from configured marketplaces. Plugins can provide agent definitions, skills, hooks, and MCP tool integrations. Managed via the CLI (
/plugins), console UI, or REST API. - (✅) Native LSP integration: Opt-in code intelligence via
lsp_tool(pygls/lsprotocol). Supports diagnostics, go-to-definition, find-references, and hover. Built-in servers: pyright (Python), typescript-language-server (TS/JS), gopls (Go), rust-analyzer (Rust) — auto-discovered on the PATH. Passive diagnostics inject automatically after file edits. Configure viaagent.lspin config. - (✅) Web IDE: Opt-in per-session code-server containers for browser-based editing, accessible from the console via "Open in Web IDE".
- (✅) Local file + shell tools: Built-in tools for file reads, directory listing, and shell commands (approval-gated).
- (✅) Chat platform adapters:
ChannelAdapterprotocol with shared_process_inbound()pipeline. Adapters for Nextcloud Talk (webhook-driven, HMAC-SHA256, ActivityStreams 2.0) and Email (IMAP polling with SMTP replies rendered as HTML from markdown). Session tag mapping, deduplication guard, and slash commands (/help,/usage,/new,/switch-project). - (✅) REST API: Exposes the assistant over HTTP for third-party integration.
- (✅) Web console: Task orchestration frontend backed by the REST API.
- (✅) Terminal CLI: Fast interactive shell with plan visibility and tool result cards.
- (✅) Model routing: Supports provider-qualified model names, a configurable API base URL, and
proxy_model_prefixfor proxy routing.
- (✅) Permission gate: Uses approval callbacks and hooks to control tool execution.
- (✅) Operational visibility: Optional Langfuse tracing (session-scoped traces) stays off if unconfigured.
- (✅) Hook system: Error-isolated hooks with session lifecycle events, external command hook configuration, and fnmatch-based tool matcher filtering.
- CLI layout adapts to terminal width. Headers and tool result cards adjust to small and wide shells.
- Interactive CLI controls. Use a model picker, MCP browser, session summary, and token budget commands.
- Inline approvals. Rich-based approval prompts render with padded, dotted borders and clear after input.
- Unified experience. Console, API, Home Assistant, Nextcloud Talk, Email, and CLI interfaces share the same core engine to reduce duplicated maintenance.
- Shared session runtime. The API exposes polling endpoints; the CLI runs the same runtime in-process for sync execution, cancellation, and summaries.
- Event payloads.
action_plansteps are{title, description};tool_result/permissionusetool_id,operation, andtool_input.
| Answer questions and interpret sensor information | Control devices and entities |
|---|---|
![]() |
![]() |
User install (core only):
uv syncOptional components:
uv sync --extra cli # CLI
uv sync --extra api # REST API
cd apps/meeseeks_console && npm install # Web console
uv sync --extra ha # Home Assistant integrationDeveloper install (all components + dev/test/docs):
uv sync --all-extras --all-groupsGlobal install (available system-wide as meeseeks):
uv tool install .
# Set up global config:
mkdir -p ~/.meeseeks
cp configs/app.json ~/.meeseeks/app.json
cp configs/mcp.json ~/.meeseeks/mcp.json
# Or run `meeseeks` and use /init to scaffold example configsConfig discovery priority: CWD/configs/, then $MEESEEKS_HOME/, then ~/.meeseeks/. Use --config /path/to/app.json for explicit override, or set MEESEEKS_HOME in your shell profile (~/.bashrc, ~/.zshrc, etc.) to permanently point to a custom config directory:
export MEESEEKS_HOME="/path/to/your/config"Pre-built images are published to GHCR on every release:
# Copy and edit the environment file
cp docker.example.env docker.env
# Edit docker.env — set MASTER_API_TOKEN, VITE_API_KEY, HOST_UID/GID
# Pull and start (recommended)
docker compose pull && docker compose up -dTo build from source instead: docker compose up --build -d.
The stack uses host networking. The API serves on port 5125 and the console on 3001. Nginx in the console container proxies /api/ requests to the API. See docs/getting-started.md for full configuration details.
See docs/index.md for the full architecture diagram.
packages/meeseeks_core/: orchestration loop, schemas, session storage, two-mode compaction, tool registry, hook system, hierarchical instruction discovery, plugin system, agent registry.packages/meeseeks_tools/: tool implementations and integrations (including Home Assistant and MCP).apps/meeseeks_api/: Flask REST API for programmatic access, plugin management endpoints, Web IDE lifecycle, channel adapters (Nextcloud Talk, Email).apps/meeseeks_console/: Web console for task orchestration, plugin management, and Web IDE access.apps/meeseeks_cli/: Terminal CLI frontend for interactive sessions.meeseeks_ha_conversation/: Home Assistant integration that routes voice to the API.packages/meeseeks_core/src/meeseeks_core/prompts/: planner prompts and tool instructions.
Overview
- docs/index.md — product overview and architecture
Setup and configuration
- docs/getting-started.md — setup guide (env, MCP, configs, run paths)
Repository map
- docs/components.md — monorepo map
Clients
- docs/clients-cli.md — terminal CLI
- docs/clients-web-api.md — web console and REST API
- docs/clients-home-assistant.md — Home Assistant voice integration
- docs/clients-nextcloud-talk.md — Nextcloud Talk chat integration
- docs/clients-email.md — email channel (IMAP/SMTP)
Reference
- docs/reference.md — API reference (mkdocstrings)
- docs/session-runtime.md — shared session runtime used by CLI + API
- Keep the core engine centralized. Interfaces should remain thin to avoid duplicated maintenance.
- Organize logic into clear modules, classes, and functions. Favor readable, well-scoped blocks.
- Prefer small, composable changes that keep behavior consistent across interfaces.
We welcome contributions from the community to improve Meeseeks.
- Fork the repository and clone it to your local machine.
- Create a new branch for your contribution.
- Make your changes, commit them, and push to your fork.
- Open a pull request describing the change and the problem it solves.
If you encounter bugs or have ideas for features, open an issue on the issue tracker. Include reproduction steps and error messages when possible.





