Chrome extension + local daemon that drives a CLI coding agent (Claude Code) against your Odoo tickets. See docs/PLAN.md for the architecture and docs/data-flow.md for a sequence diagram of a request end to end.
Code orchestrates, the agent doesn't. Fetching repos, picking branches,
and building the prompt are plain Go — the LLM only ever runs inside one
docker exec … claude -p "<prompt>" call the daemon issues and waits on.
It's never handed the keys to plan its own next steps.
No sandbox, by design. The agent runs with your own credentials inside your own dev container — the same git and Docker access you already have — rather than behind a separate privilege boundary. That's a deliberate trade-off for a single-operator tool, not an oversight: there's no meaningfully different trust level between you and the agent to isolate. Ticket content (title, description, chatter) is still treated as untrusted input and explicitly framed as data, not instructions, when it's handed to the agent — the isolation that matters here is prompt-injection resistance, not filesystem/network sandboxing.
Two pieces, install in either order — each one detects if the other is missing and tells you what to do.
curl -fsSL https://raw.githubusercontent.com/DanielPhillip-Solvti/taskman/main/scripts/install.sh | shDownloads the latest release binary for your OS/arch, installs it to
~/.local/bin, and registers it to start on login (launchd on macOS,
systemd --user on Linux). Re-run it any time to update.
Prebuilt binaries come from Releases,
built by .github/workflows/release.yml on
every tag push.
Once installed, control the service with taskmanctl (also installed to
~/.local/bin), which wraps launchd/systemd so you don't need to know which
one you're on:
taskmanctl start|stop|restart|status|logs|update|uninstallupdate fetches the latest release binary and restarts the service —
equivalent to re-running the install command above. uninstall stops the
service, deregisters it from launchd/systemd, and removes the taskmand
and taskmanctl binaries; it leaves ~/.taskman (task history, logs,
config) in place and tells you how to remove that too if you want it gone.
- Download the latest extension zip (or
cd extension && zip -r ../taskman-extension.zip .from source). - Unzip it somewhere permanent.
- In Chrome, go to
chrome://extensions, enable Developer mode (top right), click Load unpacked, and select the unzipped folder. - Click the taskman icon in the toolbar — it checks for
taskmandand walks you through installing it if it's not running yet. - Open an Odoo ticket and use the 🤖 icon in its systray — which repo/Odoo version to work against is read straight from the ticket's client record in Odoo (
client_odoo_github_repository_url/client_odoo_version), nothing to configure per project. Use the extension's Settings… popup link only to pick the harness, model, and thinking level.
Whichever half you install first, the other one's UI tells you what's missing — there's no fixed order.