Vikunja
The robomotion vikunja CLI connects to Vikunja (open-source task management) for project and task operations. It manages projects, tasks with due dates and priorities, labels, teams, task comments, and attachments — supporting the full task lifecycle.
When to use
- Create, update, or delete tasks with due dates and priorities
- Manage projects, labels, and team members
- Add comments and attachments to tasks
- List and filter tasks across projects
Prerequisites
robomotionCLI installed- Package installed:
robomotion install vikunja - Vikunja instance URL and API token configured via Robomotion vault
IMPORTANT: Session Mode Required for Multi-Step Operations
Each CLI command runs as a separate process — connection IDs from connect do NOT persist across calls.
You MUST use --session on connect and pass --session-id to all subsequent commands.
Workflow
- Install (once):
robomotion install vikunja - Connect with session:
robomotion vikunja vikunja_connect --session --output json # → {"outClientId":"<client-id>","session_id":"<session-id>"} - Use the returned
client-idandsession-idin all subsequent commands:robomotion vikunja vikunja_list_tasks --client-id "<client-id>" --project-id <proj> --session-id "<session-id>" --output json - Disconnect when done:
robomotion vikunja vikunja_disconnect --client-id "<client-id>" --session-id "<session-id>" --output json
Always append --output json to get structured JSON results.
Commands Reference
robomotion vikunja vikunja_connect --session --output jsonConnects to Vikunja and returns a reusable client IDrobomotion vikunja vikunja_disconnect --client-id --session-id "<session-id>" --output jsonCloses the Vikunja connection and releases resourcesrobomotion vikunja vikunja_create_task --client-id --project-id --task-title --description --due-date --priority --color [--30] --session-id "<session-id>" --output jsonCreates a new task in a Vikunja projectrobomotion vikunja vikunja_get_task --client-id --task-id [--30] --session-id "<session-id>" --output jsonRetrieves a single task by IDrobomotion vikunja vikunja_list_tasks --client-id --project-id [--1] [--50] [--30] --session-id "<session-id>" --output jsonLists all tasks in a projectrobomotion vikunja vikunja_update_task --client-id --task-id --task-title --description --done --due-date --priority --color [--30] --session-id "<session-id>" --output jsonUpdates an existing taskrobomotion vikunja vikunja_delete_task --client-id --task-id [--30] --session-id "<session-id>" --output jsonDeletes a task by IDrobomotion vikunja vikunja_add_comment --client-id --task-id --comment [--30] --session-id "<session-id>" --output jsonAdds a comment to a taskrobomotion vikunja vikunja_list_comments --client-id --task-id [--30] --session-id "<session-id>" --output jsonLists all comments on a taskrobomotion vikunja vikunja_create_project --client-id --project-title --description --parent-project-id --identifier --color [--30] --session-id "<session-id>" --output jsonCreates a new project in Vikunjarobomotion vikunja vikunja_get_project --client-id --project-id [--30] --session-id "<session-id>" --output jsonRetrieves a single project by IDrobomotion vikunja vikunja_list_projects --client-id [--1] [--50] [--30] --session-id "<session-id>" --output jsonLists all accessible projectsrobomotion vikunja vikunja_update_project --client-id --project-id --project-title --description --archived --identifier --color [--30] --session-id "<session-id>" --output jsonUpdates an existing projectrobomotion vikunja vikunja_delete_project --client-id --project-id [--30] --session-id "<session-id>" --output jsonDeletes a project by IDrobomotion vikunja vikunja_create_label --client-id --label-title --description --color [--30] --session-id "<session-id>" --output jsonCreates a new label in Vikunjarobomotion vikunja vikunja_list_labels --client-id [--1] [--50] [--30] --session-id "<session-id>" --output jsonLists all labelsrobomotion vikunja vikunja_delete_label --client-id --label-id [--30] --session-id "<session-id>" --output jsonDeletes a label by ID
Environment
- ROBOMOTION_API_TOKEN (if vault credentials are needed)