Skip to content

Command Reference

The meridian CLI is organized into command groups. Run any command with --help for inline documentation.

Terminal window
meridian --help
meridian timer --help
meridian timer start --help

Authenticate with an API key.

Terminal window
meridian auth login
meridian auth login --api-key mt_live_your_key_here
OptionShortDescription
--api-key-kAPI key (prompted if omitted)

On success, the CLI saves the key to your system keyring and auto-discovers your user ID if the workspace has a single member.

Clear stored credentials and user ID.

Terminal window
meridian auth logout

Display current authentication status: masked API key, user ID, and API URL.

Terminal window
meridian auth status

Set the default user ID for timer and entry operations.

Terminal window
meridian auth set-user USER_ID

Start a timer.

Terminal window
meridian timer start "Design review"
meridian timer start "API work" --project "Backend" --billable
OptionShortDescription
NAMEDescription of what you’re working on (positional, optional)
--project-pProject name or ID (fuzzy matched)
--client-cClient name or ID (fuzzy matched)
--billable-bMark as billable
--notes-nAdditional notes

Stop the active timer and save the time entry.

Terminal window
meridian timer stop
meridian timer stop --name "Updated description"
OptionShortDescription
--nameOverride the description before stopping
--notes-nAdd notes before stopping

Check the current timer state.

Terminal window
meridian timer status

Displays elapsed time, description, start time, and billable flag if a timer is running.


List time entries with optional filtering.

Terminal window
meridian entries list
meridian entries list --date today
meridian entries list --date this-week --format json
meridian entries list --start 2026-03-01 --end 2026-03-11
OptionShortDescription
--date-dDate preset or YYYY-MM-DD (see presets below)
--startStart date (YYYY-MM-DD)
--endEnd date (YYYY-MM-DD)
--project-pFilter by project ID
--limit-lMax entries to return (default: 50)
--format-fOutput format: table, json, csv

Date presets: today, yesterday, this-week, last-week, this-month

If --start and --end are provided, --date is ignored.

Create a completed time entry with explicit start and end times.

Terminal window
meridian entries create "Client meeting" \
--start 2026-03-11T09:00:00 \
--end 2026-03-11T10:30:00 \
--project "Acme" \
--billable
OptionShortDescription
NAMEDescription (positional, required)
--start-sStart time in ISO 8601 (required)
--end-eEnd time in ISO 8601 (required)
--project-pProject name or ID (fuzzy matched)
--client-cClient name or ID (fuzzy matched)
--billable-bMark as billable
--notes-nAdditional notes

Update an existing time entry.

Terminal window
meridian entries edit ENTRY_ID --sort-key SORT_KEY --name "Updated name" --billable
OptionShortDescription
ENTRY_IDTime entry ID (positional, required)
--sort-key-sTime entry sort key (required)
--nameUpdate description
--end-eUpdate end time (ISO 8601)
--notes-nUpdate notes
--billable-bSet billable flag
--project-pUpdate project (name or ID, fuzzy matched)

Delete a time entry.

Terminal window
meridian entries delete ENTRY_ID --sort-key SORT_KEY
meridian entries delete ENTRY_ID --sort-key SORT_KEY --force
OptionShortDescription
ENTRY_IDTime entry ID (positional, required)
--sort-key-sTime entry sort key (required)
--force-ySkip confirmation prompt

List all projects.

Terminal window
meridian projects list
meridian projects list --format csv
OptionShortDescription
--format-fOutput format: table, json, csv

Create a new project.

Terminal window
meridian projects create --name "Website Redesign" --client "Acme" --billable
OptionShortDescription
--name-nProject name (required)
--client-cClient name or ID (fuzzy matched)
--billable-bDefault entries to billable
--colorProject color (hex code, e.g. #4A90D9)

List all clients.

Terminal window
meridian clients list
meridian clients list --format json
OptionShortDescription
--format-fOutput format: table, json, csv

Create a new client.

Terminal window
meridian clients create "Acme Corp" --email billing@acme.com --contact "Jane Doe"
OptionShortDescription
NAMEClient name (positional, required)
--email-eClient email address
--contact-cContact person name

Set a configuration value.

Terminal window
meridian config set api_url https://api.meridiantrack.com

Get a configuration value.

Terminal window
meridian config get api_url

Display all configuration values as JSON.

Terminal window
meridian config show

Display the CLI version.

Terminal window
meridian version

The --format flag is available on entries list, projects list, and clients list. Three formats are supported:

FormatDescription
tableRich-formatted table (default, best for terminals)
jsonJSON array (best for scripting and piping)
csvComma-separated values (best for spreadsheet import)

When specifying a project or client by name, the CLI uses fuzzy matching with a 70% similarity threshold. This means you can type partial names:

Terminal window
# These all match a project named "Backend API"
meridian timer start --project "Backend API"
meridian timer start --project "backend"
meridian timer start --project "back"

If no match is found above the threshold, the CLI displays available options and exits. To bypass fuzzy matching entirely, pass the resource ID directly.