Step one

Say what you're trying to change

Not "create habit, name, frequency, reminder time". Describe the problem the way you'd describe it to someone, and the setup falls out of it: what to measure, how often to ask, what counts as a good day, and whether a streak is even the right shape.

The thing most trackers get wrong happens right here. "Meditate daily" becomes a daily checkbox, you miss two days, and the app has nothing useful left to say. Getting the measurement right at the start is most of the difference between a habit that gets tracked for a year and one abandoned in February.

  • Build or break, since they need different mechanics
  • A target with a number, if a number is what you mean
  • A cadence you'll keep, not the most ambitious one available
  • The context worth capturing alongside the tick
Defining a habit Chat

I want to run three times a week but I always give up around week three.

Called 4 tools

  • create_habit(name: "Running", kind: "build")
  • set_target(count: 3, period: "week")
  • set_check_in(cadence: "after session", capture: ["felt", "time_of_day"])
  • set_nudge(trigger: "week_at_risk", day: "thursday")

Set up as three a week rather than a daily streak, so a rest day isn't a miss. I'll capture how it felt and what time you went — if week three is really where it breaks, that's usually the pair that explains it. You'll get one nudge on a Thursday if the week is short.

Nothing here was a dropdown. The target, the cadence and what to capture were all inferred from one sentence, and every one of them can be changed by saying so.

Checking in Chat

Went out this morning, 6k, felt rough. Skipped Tuesday because of the flight.

Called 3 tools

  • log_check_in(habit: "running", distance_km: 6, felt: "rough")
  • log_missed(habit: "running", date: "tuesday", reason: "travel")
  • get_target(habit: "running", period: "week")

Logged both. That's two of three this week with Saturday still open. Travel is now the reason on 6 of your 11 missed sessions — worth deciding in advance what a travel day looks like rather than losing it each time.

Every figure here was counted from your check-ins. The model picked the tools and filled in the arguments — it never estimates a streak or invents a number.

Step two

Log it in one line, including the messy part

A tick is fine when the day was simple. Most days aren't. You went but it was short, you nearly slipped and didn't, you skipped for a reason that will repeat. That's the information that would actually explain your pattern, and a checkbox throws all of it away.

Logging by sentence means the reason gets captured at the only moment you remember it. Six weeks later, "travel" showing up on six of eleven missed sessions is a finding. It's also something no habit app has ever been able to tell you, because none of them ever asked.

  • Several habits updated from one sentence
  • Backfill by saying "yesterday" or "since Monday"
  • Near misses and slips recorded with their context
  • Still one tap on the board when one tap is all it needs

Step three

Ask what your own data says

This is the part that has never existed. You've been generating months of genuinely interesting personal data and then looking at a grid of squares, because reading it properly meant exporting a CSV and knowing what a correlation is.

Ask in plain language. The model turns the question into queries against your record, and the answers come back with the numbers they're based on — so you can tell the difference between a real pattern and a coincidence in eleven data points.

  • "Which day do I actually fall off?"
  • "Does drinking wreck my sleep, or do I just think it does?"
  • "What was different about the months this went well?"
  • "Am I better in the morning, or do I just believe that?"
Asking a real question Chat

Am I actually better at this in the mornings or do I just tell myself that?

Called 3 tools

  • find_pattern(habit: "running", group_by: "time_of_day")
  • compare_periods(metric: "completion", split: "planned_time")
  • get_history(habit: "running", window: "6m")

Both, sort of. Your morning sessions are longer — 6.4km average against 4.9 — but you complete 81% of morning plans and only 46% of evening ones. The gap isn't ability, it's that evening plans get eaten. Over six months, the mornings are worth about 40 extra kilometres.

Every figure is a count or an average over your own check-ins. The model chose which comparisons to run; it didn't produce a single one of the numbers.

Underneath

Same tools, three surfaces

The board, the chat and the MCP server are three front doors onto one registry of operations. Nothing is available to one and missing from another.

The registry

create_habit set_target set_check_in log_check_in log_slip log_missed get_streak get_history find_pattern correlate_habits compare_periods summarize_progress set_nudge export_data

One permission model and one history, whichever surface made the call. Writes are confirmed and recorded as edits; reads are free.

Early access

Set up your first habit with us

The setup conversation is the part that decides whether it sticks. We'd rather have it with you than leave you with a blank form.

  • Founding accounts lock their price for life
  • No card, no trial clock, no sales call
  • Bring a habit you've already failed to track — those are the useful ones

No card required. Unsubscribe any time.

Describe it, log it, ask about it

Founding pricing is locked for accounts opened during early access.

Founding accounts lock their price for life. No card required.