Credential Modes
Use local config for interactive workflows or inject credentials with OTTA_CLI_* environment variables for Docker/CI.
Practical CLI docs for real workflows
Automate otta.fi time tracking with repeatable commands, explicit auth modes, and script-safe output for pipelines.
Homebrew tap is the primary distribution path for releases.
brew tap mekedron/tapbrew install mekedron/tap/otta-cliUse these as first-run sanity checks or copy/paste seeds for automation.
otta auth login --username <username> --password <password>otta status --format jsonotta worktimes options --date 2026-02-20 --format jsonotta worktimes list --date 2026-02-20 --format jsonotta worktimes read --id <worktime-id> --format jsonotta worktimes browse --from 2026-02-20 --to 2026-02-26 --format jsonotta worktimes report --from 2026-02-01 --to 2026-02-28 --format csvotta calendar overview --from 2026-02-01 --to 2026-02-28 --format jsonotta absence browse --from 2026-02-01 --to 2026-02-28 --format jsonotta absence options --format jsonotta absence add --type <absence-type-id> --from 2026-02-20 --to 2026-02-20 --description "sick leave" --format jsonotta absence read --id <absence-id> --format jsonotta absence update --id <absence-id> --description "sick leave" --format jsonotta absence delete --id <absence-id> --format jsonotta absence comment --type sick --from 2026-02-20 --to 2026-02-20 --format jsonotta holidays --from 2026-02-20 --to 2026-02-20 --worktimegroup <id> --format jsonotta holidays read --from 2026-02-20 --to 2026-02-20 --worktimegroup <id> --format jsonFocused scope for daily time tracking tasks without hidden state.
Use local config for interactive workflows or inject credentials with OTTA_CLI_* environment variables for Docker/CI.
Only user-entered credentials are persisted in config. API-derived profile data is stored in a separate cache file.
List/read/browse/report, inspect selectable options, and manage full worktime + absence CRUD flows with deterministic --format output.
Commands are designed for n8n and shell scripts with stable output envelopes and explicit error exits.
Jump directly to the right docs section for your current task.
Build and run locally, set paths, and bootstrap env vars.
Credential flow, token handling, and security notes.
Worktime list/read/browse/report/CRUD, absence browse/read/add/update/delete, holidays read/retrieval, and calendar overview.
JSON envelope shape and scriptability guarantees.