The agent door

Bring your own AI. Keep the keys.

There's no chatbot inside Evidential. The assistant you already use talks to it over MCP, a standard way for AI apps to use another app's tools. It can read your list and plan with you. Every change waits for your yes.

  • Claude Code
  • Claude Desktop
  • Codex
  • Cursor
  • VS Code
  • Zed
  • Windsurf
  • Raycast
What it means, in one picture

Reads go through. Writes wait.

Your assistant Claude, Codex, Cursor...
The gate Check with meGo wild
Evidential One file on your Mac
You Say yes or no

Your assistant asks. The gate decides what happens next.

read

Looking at your list never changes it, so reads go straight through.

write

A change stops at the gate. You see the exact diff, then say yes or no.

delete

Deleting is off for assistants. It's refused, not queued.

Try a conversation

Ask like you'd ask a friend.

Pick one. Watch the real tool calls. When it wants to change something, you decide.

Activityin Evidential
  1. Nothing yet. Accept something and it shows up here.
Claude CodeEvidential · Check with me
How bad is Thursday?
›plan_today{"date":"thursday"}done
Thursday is 2h 10m over. Two things can move without touching a deadline.
Scripted demo. Tool names and arguments are real.
The trust gate

One switch. Two ways to work.

Every write, from every assistant, goes through the same gate. You pick how strict it is.

Default

Check with me

Changes are held as proposals. You see the exact diff first. Nothing lands until you say yes.

Your call

Go wild

Changes land right away. Each one is logged with who made it, and comes back with an undo token.

claude-code wants to
›tasks_reschedule{"task":"Renew passport","to":"tomorrow"}
Proposal · waiting for youpending
1 task moved to tomorrow.
~ Renew passport: due today → tomorrow

Not applied. Your list is untouched.

Appliedundo ready
1 task moved to tomorrow.
~ Renew passport: due today → tomorrow

Activity: claude-code · tasks.reschedule
undoToken 9D1F6C3A-…

01Deleting is off

Assistants can't delete, in either mode. They're told to complete it or park it in Someday instead.

02Dry run on every write

Any write can be sent with dry_run. It runs for real, shows the real diff, then changes nothing.

03Re-plans always ask

plan_propose never applies itself, not even in Go wild. Nobody reshuffles your day behind your back.

04One off switch

Agent access can be shut for every assistant at once, without touching their setup. It has no screen yet.

What it can do

Every operation, in plain words.

This is the whole list. Nothing hidden, nothing extra.

38 operations
16 read only · 16 idempotent · 6 destructive
tasks_query

A real filter language.

Your assistant asks one sharp question instead of reading your whole list.

(today | overdue) & !blocked & duration < 30
Email the landlord10m
Renew passportoverdue
tasks_create

Quick add, up to 50 at once.

One line sets the date, time, length, priority, list and section.

Draft the invoice friday 2pm for 45m p2 #Work
+ Draft the invoice · due on Friday · 45m · p2 · in Work
plan_today · plan_workload · plan_propose

The planner is a tool.

It knows if the day fits, by how much it doesn't, and what could move.

Doesn't fit: 7.5h of work against 6.0h of capacity, over by 1.5h.
9:00capacity 6.0hover 1.5h

Showing all 38

Tasks

  • tasks_queryread only

    Find tasks with the filter language, a view, or plain text.

  • tasks_getread only

    One task in full: sub-tasks, blockers, comments, time tracked.

  • tasks_createidempotent

    Add up to 50 tasks, each one line of quick add.

  • tasks_updateidempotent

    Change only the fields you name, on one task or many.

  • tasks_rescheduleidempotent

    Move the due date. The deadline stays put, and it warns you if the new date slips past it.

  • tasks_completeidempotent

    Tick tasks off. Repeats roll forward, and it tells you what just got unblocked.

  • tasks_uncompleteidempotent

    Put a finished task back on the list.

  • tasks_deletedestructive

    Delete tasks softly, with an undo token. Off for assistants by default.

  • tasks_expandidempotent

    Break a task into sub-tasks, in order.

Lists

  • lists_listread only

    Every list, with counts, colour and nesting.

  • lists_createidempotent

    Make a list. Work/Clients makes the parent too.

  • lists_updateidempotent

    Rename, recolour, archive, favourite, or change the default view.

  • lists_deletedestructive

    Delete a list. Its tasks go to the Inbox unless you say otherwise.

Sections

  • sections_listread only

    The sections of a list, in order.

  • sections_createidempotent

    Add a section to a list.

  • sections_updateidempotent

    Rename a section or move it.

  • sections_deletedestructive

    Delete a section. Its tasks stay in the list.

Parts of the day

  • segments_listread only

    Your parts of the day, their hours, and which one it is now.

  • segments_createidempotent

    Add a part to the day. It can run past midnight.

  • segments_updateidempotent

    Rename, move, recolour, reorder or switch off a part.

  • segments_deletedestructive

    Delete a part of the day. Its tasks stay.

Saved filters

  • filters_listread only

    Your saved filters and what they say.

  • filters_createidempotent

    Save a filter. It's checked before it's stored.

  • filters_deletedestructive

    Delete a saved filter. Tasks stay untouched.

  • filters_validateread only

    Check a filter without running it. Shows where it breaks.

Planning

  • plan_todayread only

    Does the day fit? How far over it is, and what to cut.

  • plan_workloadread only

    Planned time against your capacity, up to 60 days ahead.

  • plan_proposeidempotent

    Suggest a set of moves. Always a proposal, in both modes.

Review and history

  • review_weeklyread only

    The weekly review: done, overdue, undated, blocked, waiting.

  • review_rotread only

    What's gone stale, with a verdict: drop, decompose or someday.

  • stats_summaryread only

    What you finished by day and list, your peak hours, how good your estimates are.

  • activity_logread only

    Everything that changed since last time, so it can catch up.

Capture and proposals

  • capture_brain_dumpread only

    Turn messy notes into task ideas. Writes nothing.

  • proposals_listread only

    Changes waiting on you, with their diffs.

  • proposals_acceptidempotent

    Apply a proposal, only after you've said yes.

  • proposals_declineidempotent

    Turn a proposal down and note why.

Undo and settings

  • undodestructive

    Reverse a write with its undo token. Works even with deleting off.

  • settings_getread only

    Your working day, capacity, days off, and whether writes are gated.

Read only never changes anything. Idempotent writes are safe to send twice. Destructive removes or overwrites something you'd miss.

Connect it

Three steps to connect.

Today you build the server from source with one command. There's no signed download yet.

  1. 1 Build it

    In the Evidential folder, on a Mac with Xcode.

    ./MCP/build.sh --release
  2. 2 Put it on your path

    Every setup below expects it here.

    sudo cp build/evidential /usr/local/bin/evidential
  3. 3 Add it to your assistant

    Pick yours below. Then ask it about your day.

    Pick your app

Run this once in your terminal. --scope user makes it work in every project.

claude mcp add evidential --scope user -- /usr/local/bin/evidential mcp

Using something else, like Codex? Any app that can launch a local MCP server works. Point it at /usr/local/bin/evidential with the argument mcp.

The command line

Same tools. Your terminal.

The same binary is a command line. Anything an assistant can do, a script can do. Click a command to run it.

--yes skips the gate, because you typed it. --json gives the raw answer for scripts.

zsh
$ evidential today
3 tasks · about 2.8h of work.
  Draft the board deck  (today)  3F9A2C11
! Renew passport  (yesterday)  8B1E44D0
× Book the venue  (today)  51AA0F3E

Output shape matches the real CLI. Titles and ids are made up.

One contract, four doors

Written once. Opened four ways.

Every operation is described once, in one list inside the app's code. The server and the command line are built from it, so they can't drift apart.

Manifest.swift38 operations, each marked read only, idempotent or destructive
MCP server

For your assistant. All 38, plus live views.

Command line

For you and your scripts. Same 38, same gate.

App Intents

For Siri and Shortcuts. A smaller set today, moving onto the same list.

evidential:// links

Open a view, a task or quick add. Same addresses as the live views.

Live

Change a task in the app. Your assistant can know within two seconds.

More than tools. The server does the rest of MCP too.

  • Resources

    Live views like evidential://today and evidential://plan/today.

  • Prompts

    plan-my-day, weekly-review, brain-dump, what-can-i-finish-in.

  • Completions

    Fills in your real list and filter names as it types.

  • Elicitation

    Two tasks share a name? It asks you which one instead of guessing.

  • list_changed

    Tells your assistant when something changed, so it doesn't reread everything.

Where it's at

Built. Next. Later.

Straight status, so nothing here is a promise dressed up as a feature.

Built

Works today

  • The MCP serverAll 38 operations, on your Mac.
  • The command line
  • The gate: Check with me, Go wild
  • ProposalsSay yes from the command line, or tell your assistant.
  • Dry run and undo on every write
  • The delete lock
Next

Being finished

  • A proposals inbox inside the appToday there's no screen for them.
  • A settings screen for the switchesThe switches exist and work. You can't flip them from the app yet.
  • The app noticing agent changesUntil then, quit the app before an assistant writes, or the app can save over its change.
Later

On purpose, not yet

  • Assistants on your phoneThey need a server on the internet. That means an account and your data leaving your devices, so it waits.
  • A signed downloadSo you don't have to build it yourself.
Questions

Things people ask.

Can it delete my tasks?
No. Deleting is off for assistants, in both modes. The switch to allow it exists, but there's no screen for it yet, so for now it stays off. Undo still works.
Does my data leave my Mac?
Evidential doesn't send it anywhere. The server runs on your Mac and reads one local file. But the assistant you connect sees whatever it reads, and it may send that to its own company. So connect one you trust.
Which assistants work?
Anything that can run a local MCP server. The setups above cover Claude Code, Claude Desktop, Cursor, VS Code, Zed, Windsurf and Raycast. Codex and others work the same way.
What does it cost me?
Evidential's pricing isn't announced yet. The agent door runs on your own Mac, so there's no server fee on our side. Your assistant's plan is between you and them.
What if I say no?
Nothing changes. A declined proposal is kept with your reason, and your list stays as it was. Proposals you never answer expire after 14 days.
Does it work on my iPhone?
Not yet. The server runs on a Mac and works with the list stored there. Assistants on your phone need a server on the internet, and that's later.

Let your AI help. On your terms.

Early access is open to anyone who'll tell Adrian what's wrong with it. Not on the App Store yet.