your tasks, managed by your agent
Local-first CLI for personal tasks. No accounts. No cloud.
Agent-native
Your agent already knows how to use it.
Human-readable tables when you run it. Machine-readable JSON when your agent does. Every command is non-interactive – no prompts, no confirmations, deterministic exit codes. No browser, API token, or special handling needed.
Your daily snapshot
One command. Full picture.
oru context shows overdue items, today's priorities, and what is coming up.
Your agent runs it and reasons about your schedule, or you run it
yourself. In milliseconds.
Local-first
Your data stays on your machine.
oru stores everything in a single SQLite database at
~/.oru/oru.db. No accounts. No cloud. No third-party servers between you and your
tasks. Your task data is yours – readable, portable, queryable with
any SQLite client.
No sign-up. No login. No tokens.
Install it. Use it. There is no onboarding flow, no email field, no
OAuth redirect. The database is created on first run. That is the
entire setup. Want to leave? cp ~/.oru/oru.db and you have everything.
Two commands from install to first task.
The small things
Built for daily use.
You will run this dozens of times a day. Every rough edge matters.
Natural language dates.
Parse "tomorrow", "friday", "next week", or any date string. No rigid formats required.
See what needs attention.
One command to surface overdue tasks, in-progress work, and what's actionable next.
Block until prerequisites are done.
Mark tasks as blocked by other tasks. Filter to what you can actually
work on with --actionable.
Tag and filter tasks.
Labels are freeform strings – no predefined categories to manage. Add multiple labels, then filter by any of them.
Recurring tasks, handled.
Set a schedule once. When you mark a recurring task as done, the next occurrence appears automatically with the right due date.
Pipe-friendly by default.
Non-interactive by design. Compose with jq, grep, and scripts – or let your agent call it directly.
Shell completions for everything.
Tab-complete commands, flags, and values. Ships with scripts for bash, zsh, and fish.
Agents retry. oru handles it.
The --id flag makes creates idempotent – your agent can safely retry without
creating duplicate tasks.
Key-value metadata on any task.
Link tasks to PRs, projects, sprints, or anything else. The --meta flag takes arbitrary key-value pairs – useful for your own organization
and for agents to track provenance.
Get started in one command.
Your tasks. Your machine. Your agent.
Requires Node 22+.