Project workspaces for AI agents. Built for OpenClaw.
Quick Start • Features • Idea Canvas • Remote Access • Changelog
Your agent loses context every session. What was I building? What decisions did I make? What's the next task? All gone.
FlowBoard fixes that.
- 📂 Project context on demand — Activate a project and your agent gets goals, decisions, tasks, and specs. Lazy-loaded to save tokens.
- 📋 Kanban you both use — Your agent creates tasks, writes specs, moves cards, breaks work into subtasks. You see progress live.
- 💡 Idea Canvas — Brainstorm together visually. One click turns connected ideas into tasks with specs and subtasks.
Activate a project and the agent instantly gets the context it needs — goal, scope, architecture, decisions, task status, specs. Everything is loaded on demand: the agent pulls in what it needs, when it needs it, keeping token usage low. Switch between projects without losing track.
- Structured workspace:
PROJECT.md→DECISIONS.md→tasks.json→specs/ - Lazy loading — zero overhead when no project is active
- Session handoff — pick up exactly where you left off
Your agent operates the board through the same REST API as the dashboard. It creates tasks, sets priorities, writes specs with acceptance criteria, and updates status as it works.
- Tasks with workflow:
open → in-progress → review → done - Parent tasks with subtasks and progress tracking
- Spec files with acceptance criteria and logs
- Real-time visibility into what the agent is doing
A node-based brainstorming space. Sticky notes with connections form clusters. One click sends them to your agent, who analyzes the ideas and creates:
- Simple idea → Task with title and priority
- Detailed idea → Task + spec with acceptance criteria
- Complex cluster → Parent task + subtasks with specs
Visual brainstorming → structured tasks, zero manual overhead.
Browse, preview, and edit project files without leaving the dashboard. Markdown rendering with syntax highlighting, inline editing, and auto-refresh.
Access FlowBoard remotely from Telegram. Secure authentication via HMAC-SHA256, mobile-optimized UI, works through Cloudflare Tunnel, ngrok, or Tailscale.
git clone https://github.com/rasimme/FlowBoard.git
cd FlowBoard/dashboard
npm installcp FlowBoard/files/ACTIVE-PROJECT.md ~/.openclaw/workspace/
cp -r FlowBoard/files/projects ~/.openclaw/workspace/Add the project trigger to the top of your ~/.openclaw/workspace/AGENTS.md:
cat FlowBoard/snippets/AGENTS-trigger.md
# → Paste that block into your AGENTS.mdcp -r FlowBoard/hooks/project-context ~/.openclaw/hooks/
cp -r FlowBoard/hooks/session-handoff ~/.openclaw/hooks/
openclaw gateway restartnode server.js
# Or with systemd (auto-start on boot):
cp templates/dashboard.service ~/.local/share/systemd/user/
systemctl --user enable --now dashboardOpen http://localhost:18790 and tell your agent:
"New project: my-app"
The agent creates the folder structure, task file, and registers it in the dashboard.
The Idea Canvas promote feature requires OpenClaw webhooks:
1. Enable webhooks in ~/.openclaw/openclaw.json:
{
hooks: {
enabled: true,
token: "your-secret-token", // openssl rand -hex 16
path: "/hooks"
}
}2. Set environment variables:
OPENCLAW_HOOKS_TOKEN=your-secret-token
OPENCLAW_GATEWAY_URL=http://127.0.0.1:18789
OPENCLAW_DELIVER_CHANNEL=telegram # or: discord, slack, etc.
OPENCLAW_DELIVER_TO=your-chat-id # optionalWithout these, everything works except canvas promote.
Tell your agent:
| Command | What it does |
|---|---|
Project: [Name] |
Activate project (loads full context) |
New project: [Name] |
Create project with folder structure |
End project |
Deactivate, save session summary |
Projects |
List all projects |
The agent also handles these autonomously while working:
| Action | What happens |
|---|---|
| Create task | Agent calls API, sets priority, optionally writes spec |
| Create subtasks | Agent breaks a task into subtasks with a parent |
| Update status | Agent moves tasks through open → in-progress → review → done |
| Write spec | Agent creates specs/T-xxx-slug.md with acceptance criteria |
| Canvas promote | Agent receives cluster notes, decides task structure |
FlowBoard can be accessed remotely as a Telegram Mini App through a secure tunnel.
Any tunnel works. Recommended: Cloudflare Tunnel (free, stable).
cloudflared tunnel login
cloudflared tunnel create flowboard
cloudflared tunnel route dns flowboard dashboard.your-domain.com
cp templates/cloudflare-config.yml ~/.cloudflared/config.yml
# Edit: replace <TUNNEL_ID>, <USER>, <YOUR_DOMAIN>
cloudflared tunnel run flowboardJWT_SECRET=$(openssl rand -hex 32)
mkdir -p ~/.config/systemd/user/dashboard.service.d
cp templates/systemd-auth.conf.example \
~/.config/systemd/user/dashboard.service.d/auth.conf
# Edit with your values:
# - TELEGRAM_BOT_TOKEN (from @BotFather)
# - JWT_SECRET
# - ALLOWED_USER_IDS (your Telegram user ID)
# - DASHBOARD_ORIGIN (your public URL)
systemctl --user daemon-reload
systemctl --user restart dashboard- Open @BotFather →
/setmenubutton - Select your bot
- Send your public dashboard URL
- Send button label (e.g. "Dashboard")
~/.openclaw/workspace/
├── AGENTS.md # Agent trigger
├── ACTIVE-PROJECT.md # Current project state
└── projects/
├── PROJECT-RULES.md # System rules
├── _index.md # Project registry
└── my-project/
├── PROJECT.md # Goal, scope, status, session log
├── DECISIONS.md # Architecture decisions
├── tasks.json # Tasks (API-managed)
├── canvas.json # Idea canvas data
├── context/ # External references
└── specs/ # Task specs
~/FlowBoard/dashboard/ # Dashboard server
├── server.js # Express 5 API + auth
├── index.html # SPA shell
├── js/ # ES modules (vanilla JS, no build step)
└── styles/ # CSS (dark theme)
Key principles:
- 🎯 Vanilla JS — No framework, no build step, no bundler
- 💾 File-based — JSON + Markdown, no database
- ⚡ Lazy loading — Zero overhead when no project active
- 🔒 Local-first — Everything runs on your machine
- 📡 API-driven — Dashboard and agent use the same REST API
Contributions welcome! See CONTRIBUTING.md for guidelines.
git checkout -b feat/your-feature
# Make changes on dev branch
git commit -m "feat: your feature"MIT © 2026
Built with ❤️ for the OpenClaw community


