Install the uqplanner CLI, create an API key, and let an AI coding agent such as Claude Code pick up a task, do the work and attach evidence and comments back.
uqplanner is a command-line tool that connects a code repository to a UQ Planner project. People use it to read and update tasks without leaving the terminal. AI coding agents — such as Claude Code — use it to take one task at a time, do the work in the repository, and report back with a comment and evidence (test videos, screenshots, logs) attached to the task. Everything happens as you: the CLI uses your API key, so it sees exactly your projects and permissions.
The CLI downloads your next open task as a Markdown file — description, epic, linked docs and comments included.
Your AI agent reads it, implements the change, tests it and writes a short report.
The CLI uploads the report and the evidence to the task and moves it to Awaiting Review.
A person reviews it on the board like any other work — and the loop moves on to the next task.
On macOS and Linux it installs into ~/.local/share/uqplanner with the uqplanner command in ~/.local/bin (make sure that folder is on your PATH); on Windows into %LOCALAPPDATA%\uqplanner. Update later with uqplanner upgrade; check the version with uqplanner --version.
uqplanner login uqp_xxxxxxxxxxxxxxxx # verifies and saves the key
uqplanner whoami # you, your organisation, the linked project
uqplanner org # list organisations; switch: uqplanner org use "<name>"
uqplanner projects # list projects (key, id, name)
cd ~/code/website
uqplanner link <projectId> # pin this repository to the project
link writes a small .uqplanner.json in the repository so later commands know the project (it is found from any sub-folder). The CLI keeps its working files in .uqplanner/ — add that folder to your .gitignore. Your key is stored in your home folder (~/.uqplanner/), never in the repository.
uqplanner next # your open tasks, best first → .uqplanner/queue.md
uqplanner tasks --mine # a table of tasks (filters: --status, --type, --project)
uqplanner task pull WEB-42 # → .uqplanner/tasks/WEB-42.md
# edit the file: status, assignees, labels, dates, description, tick subtasks,
# add a new "### …" section at the end to post a comment
uqplanner task push WEB-42 # only what you changed is applied
uqplanner task new draft.md # create a task from a Markdown file
uqplanner upload WEB-42 ./screenshot.png
The task file
.uqplanner/tasks/WEB-42.md
---
key: WEB-42
project: WEB
type: TASK # EPIC | TASK | BUG | SUBTASK
status: In Progress # one of the project's workflow statuses
parent: WEB-40
blockedBy: [WEB-39]
assignees: [dev@example.com]
labels: [frontend]
start: 2026-11-03
due: 2026-11-07
fields: { Priority: High } # card-template custom fields
updatedAt: 2026-11-04T09:12:00.000Z # keep as received
---
# Close the dialog on Escape
Description in Markdown.
<!-- planner:subtasks -->
## Subtasks
- [ ] WEB-43 Handle Escape key # tick to move it to Done
- [ ] Add a test # a line without a key creates a subtask
<!-- planner:comments -->
## Comments
### Done
A new section at the end is posted as a comment.
If someone changed the same field in the web app since you pulled, push stops with a conflict and saves the latest version to the same file — redo your edit there and push again.
The CLI drives Claude Code (--agent claude, the default) or Yuki (--agent yuki). Assign tasks to yourself in Planner first — the agent works your queue.
Install the /uqplanner-run skill into your AI tool (one-time):
It prepares one task, starts the agent with the /uqplanner-run skill, then syncs the results — and repeats until your queue is empty. If it is interrupted, uqplanner run (or uqplanner resume) carries on where it stopped; --hard starts from a clean slate.
Prefer to drive it yourself? Run the three steps separately: uqplanner prepare, then type /uqplanner-run in Claude Code, then uqplanner sync.
With several repositories linked, uqplanner runAll runs the loop on each (--mode sequence or parallel).
What the agent is told to do
Read the task's comments first — the newest comment overrides the description.
Update the default branch before changing anything.
Plan, implement and test the change.
Capture evidence, preferring a Cypress or screen-recording video, then a screenshot, then test output.
Write a comment: what changed, how it was tested, anything left over.
Commit locally with a one-line message named after the task.
Mark the task done — unless it got blocked, in which case it says why in the comment and leaves the task open.
On sync, the CLI posts the agent's comment on the task, uploads every evidence file as an attachment (up to 50 MB each), and moves finished tasks to Awaiting Review. Reviewers see the video or screenshots right in the task window — the agent's work arrives with its receipts. You can attach evidence by hand at any time with uqplanner upload WEB-42 ./video.mp4.
Email hello@uniqtech.dev with what you tried and, if it is about a task, its key (for example PRO-13). Pro organisations are answered first. Billing questions: see Contact.