You define the schema. opx keeps the record.

Define what you track — the fields, the views, the panels. Entries arrive by hand, over the API or from feeds, into one timeline.

workout

type
1,284 entries
performed_atdatemarked as the title field
kindselectgym, climbing, rowing, walk
durationduration48m
rperating1 to 10
projectrelationa project entry
noteslongtextprose
One definition: the form, the columns, the API and what MCP sees.

Last seven days

list
Fri 12 Sep
Gym48mRPE 7
Wed 10 Sep
Rowing32mRPE 5
Mon 8 Sep
Climbing1h 10mRPE 8
Or as a calendar, heatmap, board or stat — per panel.

For the founder

One dashboard for your company and your life. Stripe, your cloud bill, your repo, your calendar and your reading, every five minutes, with a morning brief that cites its sources, and an agent that can ask it anything.

Six things are yours to define

All of it is configuration. A type you invent works like one that shipped.

Types

Anything you track, with its own name, icon and colour.

Fields

Fourteen field types, from text to relations. One names the row.

Views

List, table, board, gallery, calendar, timeline, heatmap and stat.

Panels

A saved view on a dashboard, sized on a twelve-column grid.

Labels

Nested, coloured tags across types — health/training on a workout and a habit.

Sources

RSS, MCP and HTTP/JSON, each on its own schedule.

Four ways in, one timeline

What a source brings in and what you type are the same kind of entry.

RSS and AtomReady

A feed, a type and a field mapping. Re-fetching never duplicates.

MCP serversReady

Your agent reads your types before it writes, and every write is attributed.

HTTP and JSONReady

An endpoint and a JSONPath, for anything with an API.

Databases you hostNot in v1

Read-only Postgres or MySQL. Planned.

Try before you turn it on

A test run shows what a source would create, and creates nothing.

The same API, from a shell

No daemon, the token in your keyring, and help text written from your own schema.

opx login

Signs in through your browser.

opx login --device

A short code, for SSH and machines with no browser.

--token

For CI only.

$ opx ls workout --since 7d
Fri 12 Sep Gym 48m rpe 7
Wed 10 Sep Rowing 32m rpe 5
Mon 8 Sep Climbing 1h10m rpe 8
 
$ opx add workout "Kettlebell" --duration 25m --rpe 6
created workout 3b91f204 25m rpe 6
 
$ opx add workout "Kettlebell" --sets 5
error unknown flag: --sets
fields on workout: performed_at, kind, duration, rpe, project, notes
run `opx add workout --help` for the full list