OpenAnyWork is a desktop workbench for Deep Agents: not just chat, but enabling agents to invoke tools, execute tasks, and orchestrate workflows within local workspaces.
Caution
OpenAnyWork allows AI to read/write local files and execute commands. Please run only in trusted workspaces and review execution behavior carefully in non-isolated mode.
- Node.js
>=18 - npm
- Docker (optional, but recommended for isolated execution)
git clone https://github.com/Antony-Jia/OpenAnyWork
cd OpenAnyWork
npm install
npm run devnpm run build- Dual workspace modes:
Classic(thread workflow) andButler(orchestration workflow). - Standalone window capabilities: Quick Input (global shortcut
Ctrl+Alt+Space) and task desktop popup. - Thread types supported:
default / ralph / email / loop / expert / butler.
- Create threads in different modes (default/ralph/email/loop/expert).
- Rename and delete threads, with option to delete thread memory summaries.
- Filter threads by source (all / human / butler).
- Fixed
Agentsession page + file tabs for parallel browsing. - File viewing supports code, text, images, PDF, media, and binary files.
- Streaming agent conversations with tool call display (includes tool call / result).
- HITL approval, interruption, and cancellation (constrained by thread capability configuration).
- Voice input (STT) and voice output (TTS) support.
- Image and document attachment support (documents are parsed for text extraction before injection).
- Task Todo status panel.
- Workspace file tree (associated directory, auto-refresh, file opening).
- Subagent running status list.
- Docker mounted file view.
- Ralph progress view (Ralph mode).
- Butler makes semantic decisions among "direct reply / clarify / create task" each round.
- Butler supports dual paths "direct tool operation / create task": daily operations prioritize direct tools without launching tasks.
- Supports single-round multi-task creation, dependency relationships (
dependsOn), and concurrent scheduling. - Supports task handoff (
context / filesystem / both).
calendar_upsert: Unified add/update calendar events (action=create|update).countdown_upsert: Unified add/update countdown timers (action=create|update).query_calendar_events: Query calendar events by time window (supports semantic time to absolute time conversion).query_countdown_timers: Query countdown timers by status and time window.pull_rss_updates+query_rss_items: Actively pull RSS and query summaries/detailed content.query_mailbox: Actively read today's emails or recent N emails (default last 10).- Butler mode hard-restricts system commands and filesystem tool calls (dialogue/business tools/task creation only).
- Display task status (queued/running/completed/failed/cancelled).
- Support opening task threads directly from the board.
- Support clearing Butler history and task records.
- Calendar event reminders.
- Countdown reminders.
- Email rule pulling (IMAP).
- RSS subscription incremental pulling.
- Support manual immediate pulling (
pullNow).
- Event notification cards and digest cards flow back to Butler.
- Support task muting and digest cycle configuration.
Settings: Language/theme, Provider, Ralph, Email, Speech, Butler configuration, etc.Subagents: Sub-agent configuration (model, tools, middleware, skills, scope switches).Tools: Tool keys and enable status (Classic/Butler dual scope).Skills: Scan, create, install, edit, enable/disable (Classic/Butler dual scope).MCP: Server configuration, start/stop, tool discovery, scope switches.Prompts: Template new/search/view/edit/delete/copy.Plugins: Preset plugin management (currently built-in Actionbook).Container: Docker configuration and session control.Memory: Conversation Memory and Butler Global Memory management.
Main process IPC modules cover:
- Agent
- Threads
- Workspace
- Loop
- Expert
- Butler
- Butler Monitor
- Prompts
- Memory
- Models & Provider
- Tools
- Skills
- Subagents
- MCP
- Docker
- Settings
- Speech
- Notifications
- Plugins
Main process broadcast events include (non-exhaustive list):
threads:changedthread:history-updatedapp:toastapp:task-cardbutler:state-changedbutler:tasks-changedbutler-monitor:event
- System tray persistence, main window hide and restore.
- Task desktop popup (supports opening thread, closing, muting tasks).
- Quick Input standalone window (
Ctrl+Alt+Spaceto summon, direct to Butler).
- Messages must have a workspace bound to the thread before sending.
- Loop defaults to paused after application restart, not automatically resuming.
- Prompt templates are a material library, not automatically injected into every round of messages.
- Docker management entry is currently Windows-only by implementation limitation.
- The
Sync to Diskbutton in the right file area is currently placeholder behavior, not representing implemented bidirectional sync.
- Automatically extract session summary after task completion (mode, brief description, details, tool process, preference tags, etc.).
- Butler main session (
butlerMain) does not write dialogue memory summaries.
- Aggregate and generate daily profile and comparison text based on "yesterday's" task summaries at startup.
- Butler orchestration prompt references
[Daily Profile]and[Profile Delta].
- Title bar
Memoryto view Conversation Memory (grouped by thread) and Butler Global Memory. - Support one-click clearing of all memory.
All local data defaults to ~/.openwork/:
openwork.sqlite: Main database (threads, prompt templates, MCP, tools, subagents, settings, etc.)memory.sqlite: Memory database (task summaries, daily profiles, Butler history messages/tasks)langgraph.sqlite: General checkpoint databasethreads/*.sqlite: Thread-level checkpointsthreads/*.ralph.jsonl: Ralph logsbutler-workspaces/: Butler task working directory (default, can be modified in settings)
- Architecture:
ARCHITECTURE.md - Email Mode:
EMAIL.md - Speech API:
SPEECH_API.md - Contributing:
CONTRIBUTING.md
MIT © LangChain




