A local-first workspace UI built for OpenClaw, designed for multi-project work, persistent memory, and clean session boundaries.
Deploy in 1 minute · OpenClaw deploy prompt · GitHub · Contributing · Frontend architecture · 中文说明
OpenManager is a local-first workspace UI built for OpenClaw.
It gives OpenClaw users a durable project layer on top of normal chat:
- one project for one long-running workspace
- one session for one work thread
- one place for memory, tasks, uploads, and agent bindings
If you often work across multiple projects, return to the same context over many days, or hate re-explaining background every time you continue, OpenManager is built for that.
OpenManager treats:
- a project as the workspace boundary
- a session as the conversation boundary
- an agent as the execution boundary
That model is a good fit when you are:
- running several OpenClaw projects in parallel
- revisiting the same project across many days
- switching between planning, execution, debugging, and release work
- trying to keep memory and files tied to the right project
- Node.js 20+
- OpenClaw installed and already working in your shell
git clone https://github.com/Adkid-Zephyr/OpenManager.git
cd OpenManager
npm install
npm startThen open:
http://127.0.0.1:3456/
Manual:
http://127.0.0.1:3456/manual.html
- A local web UI
- A local Node.js API
- Runtime data inside your OpenClaw workspace, not in the repo
- OpenClaw-backed features for agents, models, chat, Skills, and Cron
If you want OpenClaw, Codex, or another coding agent to deploy this project for you, give it this prompt:
Clone https://github.com/Adkid-Zephyr/OpenManager.git, install dependencies, start the local server, verify http://127.0.0.1:3456/ and http://127.0.0.1:3456/manual.html both load, then tell me how to keep it running and how to reopen it later.
If you want a more guided setup, use this version:
I want to deploy OpenManager locally for daily OpenClaw use. Clone https://github.com/Adkid-Zephyr/OpenManager.git, check that OpenClaw is available in my shell, install dependencies, start the app, verify the UI and manual page both load, explain where runtime data will be stored, and give me the exact command to start it again next time.
- Multi-project local workspace management
- Shared memory at the project level
- Session-level memory layers for long-running conversations
- Task tracking and file uploads per project
- One-click binding to dedicated OpenClaw agents
- Optional local Codex execution for project workspaces
- Cron and Skills panels for OpenClaw power users
- A local manual built into the app
More product screenshots are available in docs/screenshots/.
If you want to help improve OpenManager, start here:
The current refactor direction is behavior-preserving:
- keep the existing UI familiar
- keep the existing interaction model familiar
- improve maintainability underneath
flowchart LR
A["Project"] --> B["Shared memory"]
A --> C["Sessions"]
A --> D["Tasks"]
A --> E["Uploads"]
A --> F["Agent / runtime settings"]
C --> G["Raw conversation history"]
C --> H["Hot memory"]
C --> I["Facts"]
C --> J["Summaries"]
flowchart LR
U["Browser UI"] --> S["OpenManager local server"]
S --> W["OpenClaw workspace files"]
S --> O["OpenClaw CLI / Gateway"]
W --> P["projects/<project>/ memory tasks uploads"]
O --> R["Agents / models / chat / skills / cron"]
flowchart TD
A["User message"] --> B["Project + session context"]
B --> C["shared.md"]
B --> D["hot.json + facts.json"]
B --> E["summary.md"]
B --> F["recent jsonl entries"]
C --> G["OpenClaw run"]
D --> G
E --> G
F --> G
G --> H["Assistant reply"]
H --> I["Session memory updated"]
- Create a project for a long-running theme.
- Fill in shared memory with goal, scope, constraints, and next steps.
- Create separate sessions for planning, implementation, debugging, or release.
- Attach tasks and uploads to the same project instead of scattering them across tools.
- Bind a dedicated agent when the project becomes serious and long-lived.
Recommended naming patterns:
- Project names:
官网改版,数据看板,内容选题库,客户交付 Alpha - Session names:
需求梳理,接口联调,发布收尾,问题排查
OpenManager depends on the OpenClaw CLI for several features:
- list and create agents
- chat through gateway agents
- list models
- manage Skills
- manage Cron jobs
OpenManager is local-first, but some actions have global side effects:
- Skills toggles write to your OpenClaw user config
- Cron jobs are created in your OpenClaw runtime
That behavior is intentional, but it should be understood before use.
-
PORTDefault:3456 -
HOSTDefault:127.0.0.1 -
OPENMANAGER_WORKSPACE_DIROptional override for where project runtime data lives -
OPENCLAW_WORKSPACE_DIRLegacy-compatible override if you already manage your workspace that way -
OPENCLAW_HOMEOptional override for the OpenClaw home directory -
OPENMANAGER_ALLOWED_ORIGINSOptional comma-separated list of extra origins allowed to call the local API
If no workspace override is provided, OpenManager falls back to:
~/.openclaw/workspace
Runtime data is stored outside the repo in your OpenClaw workspace:
projects/<project>/
├── .project.json
├── memory/
│ ├── shared.md
│ ├── session-<id>.meta.json
│ ├── session-<id>.jsonl
│ ├── session-<id>.hot.json
│ ├── session-<id>.facts.json
│ ├── session-<id>.summary.md
│ └── session-<id>.md
├── tasks/
│ └── tasks.json
└── uploads/
The initial shared.md template is intentionally guided so new users can fill in:
- one-sentence goal
- success criteria
- current scope
- key context
- working agreements
- next steps
- This repo is designed to stay free of personal runtime data
- Project conversations, uploads, and memory files live in the workspace, not in the repo
- The default server host is
127.0.0.1to avoid exposing the UI on your LAN by accident - Browser API access is restricted to the local OpenManager origin by default, which reduces the risk of arbitrary websites calling your local API while the app is running
- The default local workflow at
http://127.0.0.1:3456/is not affected by that restriction - If you intentionally serve the UI from another origin, set
OPENMANAGER_ALLOWED_ORIGINSaccordingly - Keep the default
HOST=127.0.0.1unless you intentionally trust the network and understand the exposure
Check whether OpenClaw works in the same shell:
openclaw --helpStart it with:
OPENMANAGER_WORKSPACE_DIR=/your/path npm startAllow that origin explicitly:
OPENMANAGER_ALLOWED_ORIGINS=https://your-domain.example npm startYou can bind another host, but that is no longer the safest default:
HOST=0.0.0.0 npm startOnly do this when you understand the network exposure.
-
npm startStart the app -
npm run devStart the backend directly -
npm run sync:compatSyncfrontend/*to compatibility entry files in the repo root -
npm testRun the release-minimum verification suite: production build, smoke test, and browser regression coverage -
npm run regressionRun the Playwright-based browser regression suite for composer behavior, upload preview, and run controls
openmanager/
├── app.html
├── api.js
├── manual.html
├── frontend/
│ ├── index.html
│ ├── api.js
│ └── manual.html
├── backend/
│ ├── context.js
│ ├── server.js
│ ├── lib/
│ └── routes/
├── docs/
├── scripts/
├── cli.js
├── USER_GUIDE.md
├── SEPARATION_NOTES.md
└── SKILL.md
- No multi-user auth layer; this is a local tool
- Cron and Skills depend on a functioning OpenClaw CLI environment
- Some convenience actions still assume a desktop environment




