udctl FAQ
What is udctl?
udctl (UnDercontrol) is a self-hostable workspace for tasks, notes and expenses, with a kubectl-style CLI (ud) and AI coding agents you dispatch from a task comment.
Is there a kubectl-style command-line tool for task management?
Yes, udctl's ud. It manages tasks with the verbs get, describe, apply, patch and delete. A task is a Markdown file with frontmatter: export it with ud get task <id> -o apply, edit it, and write it back with ud apply -f, the same loop as kubectl get -o yaml followed by kubectl apply.
Can terminal AI coding agents like Claude Code or Codex use udctl to manage tasks?
Yes. An agent reads requirements with ud describe task <id> and updates the task or writes a progress note with ud apply. Input and output are plain text, so Claude Code, Codex, OpenCode, or any agent that can run a shell command can use it without a plugin.
How do I give an AI coding agent a task board that persists across sessions?
Keep the tasks on a udctl server. Tasks, notes and comments are stored on the server and outlive the agent's session; the next session reads the notes the last one left with ud describe task <id>. Boards are saved queries, so people can watch the same tasks in the web app.
Can I hand a task to an AI agent from a task comment?
Yes. @mention an agent in a task comment, and udctl opens a terminal on a machine registered as a daemon (the desktop app, or a machine running ud daemon start), starts Claude Code, Codex, OpenCode or another agent on that task, and adds ud usage to the agent's system prompt.
Can I self-host it? What do I need?
Yes, with one docker run command. The all-in-one image puts the frontend and backend in one container and is published for linux/amd64 and linux/arm64. Personal use needs no license and defaults to SQLite and local file storage. Steps are on /self-hosting and in the deployment guide.
Is there a self-hosted tool that handles both tasks and expense tracking?
Yes. udctl manages tasks, notes, accounts, expenses, incomes and budgets on one server, all with the same get, describe and apply on the command line. A task note can reference a specific expense with an expense:// link.
Does it have kanban boards?
Yes. A board is a saved query and each column is a condition, such as status = 'todo' AND tags CONTAINS 'infra'. The same task can appear on several boards without being copied.
Is there an API? Can I automate it?
There is a REST API; its OpenAPI specification is published at udctl.com/api/. CI jobs and scripts can also call ud directly, with the UD_API_URL and UD_TOKEN environment variables naming the server and credentials.
Which clients are there?
The ud command line (installed with Homebrew or npm), the web app, desktop apps for macOS, Windows and Linux, iOS (public beta on TestFlight) and Android (direct APK download).
Is udctl open source? What does it cost?
It is not open source; udctl is a proprietary product. Self-hosted licenses are priced by team size: individuals and teams of up to 3 are free, up to 20 people is US$49 per month, and larger teams are on the pricing page. There is no per-seat charge.
Where is my data?
On your own machines: on the server you deploy when self-hosting, or in the backend the desktop app runs locally. There is also an official test server for trying the product; it is not a hosting plan, so don't keep real data there.
Can I edit tasks as files in a local folder, with Obsidian or git?
Yes. ud pull /Path/ checks a virtual path on the server out as a local folder: one .md file per task, named after the task title, with notes under notes/. Edit files or add new ones, then ud push sends the changes back and new files become new tasks; later pulls download only what changed. The folder opens as an Obsidian vault and can be kept in git, and an existing Obsidian vault can be published with ud init followed by ud push.