Skip to content
DanielPhillip-SolvtiPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

taskman

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.

Philosophy & isolation

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.

Install

Two pieces, install in either order — each one detects if the other is missing and tells you what to do.

1. The daemon (taskmand)

curl -fsSL https://raw.githubusercontent.com/DanielPhillip-Solvti/taskman/main/scripts/install.sh | sh

Downloads 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|uninstall

update 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.

2. The extension

  1. Download the latest extension zip (or cd extension && zip -r ../taskman-extension.zip . from source).
  2. Unzip it somewhere permanent.
  3. In Chrome, go to chrome://extensions, enable Developer mode (top right), click Load unpacked, and select the unzipped folder.
  4. Click the taskman icon in the toolbar — it checks for taskmand and walks you through installing it if it's not running yet.
  5. 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages