Singularity CLI
This entire project — every line of code, every test, this very README — was written by Claude Code. No humans were mass-unemployed in the making of this CLI. Your job is safe. Probably.
A command-line interface for the Singularity task manager, built in Rust.
Why?
This CLI is built primarily for AI agents. Singularity offers an MCP server, but MCP tool definitions, schemas, and JSON responses consume a significant chunk of the agent's context window. A CLI call like singularity task list --project-id P-xxx is a single line in, a compact table out — orders of magnitude fewer tokens than an equivalent MCP round-trip with its full schema overhead.
Agents can discover available commands and flags via --help without loading any schema into context. The CLI ships with a Claude Code skill file — drop it into your project and your agent can immediately manage tasks through the Singularity API.
It works great for humans too, of course.
Agent Setup
- Install:
cargo install singularity-cli - Run
singularity setupto configure API token and timezone (orsingularity config set-token <TOKEN>+singularity config set-timezone Europe/Kyiv) - Copy
.claude/skills/singularity.mdto your project's.claude/skills/directory - Your agent can now run commands like
singularity task create "Fix bug" --priority high
Use --json on any command for machine-readable output that agents can parse programmatically.
Installation
Or build from source:
# binary is at ./target/release/singularity
Quick Start
# Interactive setup (API token + timezone)
# List your projects
# Create a task
# Today's tasks
# This week's tasks
# Complete a task
Configuration
Run singularity setup for interactive configuration of API token and timezone.
Authentication
Two options, env var takes precedence:
| Method | Details |
|---|---|
| Config file | singularity config set-token <TOKEN> saves to ~/.config/singularity/config.toml |
| Environment variable | export SINGULARITY_TOKEN=<TOKEN> |
Timezone
The API stores all dates in UTC. Configure your timezone so the CLI correctly converts date filters and displays:
Without a timezone configured, dates are treated as UTC. With a timezone, bare date filters like --start-from 2026-02-28 are converted to the correct UTC boundaries for your local time.
Commands
Projects
Tasks
Task Groups
Tags
Output Formats
By default, list commands output markdown-style bullets:
- ID: T-abc
Task: Review PR
Priority: high
Checked: empty
- ID: T-def
Task: Write tests
Priority: normal
Checked: checked
Use --json on any command for machine-readable JSON output:
ID Formats
Singularity uses prefixed UUIDs for entity identification:
| Entity | Format | Example |
|---|---|---|
| Project | P-<uuid> |
P-a1b2c3d4-e5f6-... |
| Task | T-<uuid> |
T-f7e8d9c0-b1a2-... |
| Task Group | Q-<uuid> |
Q-1a2b3c4d-5e6f-... |
Development
# Run tests
# Lint
# Format
License
Apache-2.0 - see LICENSE for details.