Connect your agent
You can connect an AI agent, such as Claude or Codex, to your Fennick notebook. It reads and writes there under its own name, and every change it makes is in the Op Log, where you can undo it.
Today only the founders use it. It is not open to other people yet coming. Parts marked coming on this page are being built and checked now.
Connect Claude, ChatGPT and other agents
Agents work only when your AI setting is AI allowed (Settings › AI), and the notebook's is too. Below that, an agent is told so and changes nothing. While either is lower, Settings › Connections says Agents need AI allowed, with which setting is lower, and Allow AI raises both in one tap. See Settings › AI.
For a notebook that syncs. There is one address, and you sign in with your browser. No key to copy. Your agent reaches the notebook through Fennick's server, so it works with your computer closed.
- Open Settings › Connections.
- For Claude or ChatGPT, click Connect. If it's connected already, from another notebook, you choose what it may do in this one right there. If not, Fennick's address is copied, and that app's page for adding one opens. One click, once Fennick is listed in their directories coming
- Claude: in Customize › Connectors, add a custom connector, name it Fennick, paste the address, then Add and Connect.
- ChatGPT: in Plugins, click Browse directory, then Add a custom MCP server: name it Fennick, paste the address, and pick OAuth. Which ChatGPT plans can add one, and whether it may change your notes or only read them, is ChatGPT's to say: see OpenAI's help if you don't see the option.
- For an agent in a terminal, pick its tab (Claude Code, Codex, Cursor, OpenCode or Other) and copy what it shows. For Claude Code, that's
claude mcp add --transport http fennick https://mcp.fennick.app/mcp. Start Claude, type/mcp, and sign in when your browser opens. - Your browser opens the Allow screen. Pick what it may do and where, then what it may do in each of your other notebooks (No access to start), and click Connect.
One agent, every notebook
Connect Claude once, and it can work in each of your notebooks: you choose what it may do in each one, in that notebook's Settings › Connections. A new notebook starts at No access, so nothing in it is read until you pick a level. A notebook whose AI setting is below AI allowed turns it away, and the others go on. Ask it about "my Family notebook" and it finds that notebook by its name. Name none, and it works in the first one: the one open in Fennick on your Mac, or the one you connected from in the cloud. When it can reach more than one, it says which one it used. Its memory, skills and instructions stay in each notebook (see Give your agent instructions).
It shows under Connected agents in Settings › Connections, with where it runs: in the cloud, or on this Mac. Name renames it and picks its color; its changes and the Op Log show both. Change changes what it may do, at once. Changes opens what it changed in the Op Log. End stops it at its next call. It stays connected while it's used; after 90 days unused it ends by itself.
In a notebook shared with other people, their agents show under Other people's agents, below your own, each with whose it is, such as "Priya's agent", and what it may do there. Another person's agent reaches only the notebooks that person is in, never your others. It works only when both of you have AI allowed in that notebook, and never above that person's own level there: if they can only view, their agent can only view, from its next call. The notebook's owner can Change or End another person's agent there; everyone sees its Changes.
- Its name. Its changes are marked ✦ with the name you gave it on the Allow screen, such as "Claude". A second one with the same name is "Claude 2".
- Limits. A connection makes at most 180 calls a minute (in bursts of up to 30), and a notebook takes at most 600 a minute from all its connections.
What it may do
In each notebook, a connection has a level and a Where, chosen there. No access keeps it out of that notebook, and leaves the others as they are.
- Can view. Read. Change nothing.
- Can suggest. Read. Its changes wait under Waiting for your yes in Settings › Connections until you press Apply or Drop.
- Can edit. Read, add, change and trash blocks, and set field values.
- Full access. Also set up tags, fields, views, templates, rules and skills.
Where is Everywhere, or the tags, pages and tagged blocks you pick, with what's under them. Can view can also be just the day pages. With Can edit or Can suggest on a pick, you choose whether it may read the rest of the notebook. Full access is always Everywhere.
At every level, only a person gives or ends access and empties the Trash.
Words on a rule, a skill or your start page are setting up, so only Full access changes them. A page you pick that is placed on one of those stays out of reach until you take it off there. If a rule, a skill or your start page mentions a block, or a two-way field links to one, others read what the agent writes in it.
On your Mac, with no account
For notebooks kept only on your Mac, free. In the Fennick app, open Settings › Connections, under On this Mac. One connection works in every notebook on this Mac: you choose what it may do in each one, in its own Settings › Connections.
- Give your agent a name, such as Claude, and pick what it may do. Click Connect…
- Fennick shows one command. Click Copy, paste it in Terminal, and press Return. The command works once, within 10 minutes. After that, the
fennickcommand keeps its own key in your Mac's Keychain, never in a file. - Terminal then shows the command that adds Fennick to your agent, one for Claude Code and one for Codex. Run the one for yours.
- Start a session and ask your agent to do something in your notebook. It reads your instructions first (see Give your agent instructions).
It shows under Connected agents, with Name, Change, Changes and End. A Mac app from before these levels offers only Full access and Can view: update it for the others.
Fennick doesn't need to be open. The first time your agent asks, Fennick starts in the background with no window, and a small fox in the menu bar shows it is running. A notebook that isn't the one open is opened in the background for your agent, and let go a minute later. The notebook on your screen stays as it is. A notebook that syncs syncs then too: your agent reads what your other devices wrote, and its changes go up as it makes them.
A key, for scripts
For a script, or an agent that can't sign in by browser, such as Claude Code on the web. In Settings › Connections › A key, for scripts, click Make a key…, pick what it may do, and click Make a key. It's shown once.
In Claude Code on the web, add the key to your cloud environment as a network secret: host fennick-hub.fly.dev, header Authorization, prefix Bearer. Add a .mcp.json to the repository the session opens: { "mcpServers": { "fennick": { "type": "http", "url": "https://fennick-hub.fly.dev/a/<your notebook>/mcp" } } }.
Its name and limits are the same as for a sign-in. The key works until you click End.
What your agent can do
- Read. Search your blocks and pages, read a page or a day, list your tags and their fields, run a query on a tag's fields (with totals and averages), read a query block and its results, list a tag's saved views, see how a page or a view looks, see what links to a block, list the Trash, and read the Op Log.
- Write. Add blocks or a whole outline with tags and fields, change words, tick check boxes, add and take off tags, set fields, move blocks, make pages, duplicate blocks (each copy a new one), take a block off a page it is shown on, put blocks in the Trash or take them out again, and undo its own changes.
- Set up. Make tags, add, rename and remove fields, change a field's Type, add choices to a choice field, set how a field shows, write a Formula, make a Select from tag field two-way, pick the tags a tag builds on, apply a tag's template, and put a tag on many blocks at once.
- Queries and views. Put a live query block on a page and change it, and make, change or remove a tag's saved views.
- Looks. Star pages and blocks, and set a page's icon and cover and a tag's color and icon.
- Pictures. Add a picture block from a file on your Mac or a link on the web, with its caption, and set a page's cover from a picture or an Unsplash photo. Your agent can also look at the pictures in your notebook. Through Fennick's server, a picture comes from a link, never a file.
- Files. On your Mac, your agent can add any file you can put on a page: audio, video, a PDF or any other, as a file block tagged #file, with its name kept and its words beside it. It's one change, so Undo takes it back. A file can be up to 200 MB, or 10 MB through the Fennick app. Your agent can also get a file in your notebook back. Through Fennick's server, a file from a link must be a picture.
- Bring in and take out. Turn one Markdown file, such as a CLAUDE.md or a note, into a page. Bring in a folder of Markdown notes, such as an Obsidian vault, and undo that import. Write a page, or the whole notebook, out as Markdown, the same files Export writes, into its answer or into a folder on your Mac.
- Memory. Save what it learns to its memory pages (see Give your agent instructions).
- Open. On your Mac, show a block in Fennick.
- Update. On your Mac, take the newest version of Fennick, when no one is typing in it.
Ask for fewer tools
Your agent can ask for only the tools a job needs, which saves it reading about the rest. There are four sets: read (always there), write (add, change, tick, tag, move, Trash, undo), setup (tags, fields, views, looks) and import (bring in notes and pictures). It can ask for less than its connection allows, never more.
- On your Mac:
fennick mcp tools=read,writein place offennick mcp. - Through Fennick's server: add
?tools=read,writeto its address. With?tools=read, it can only read at that address.
From a script
A script or another app without MCP can call the same tools as plain JSON, with a key from A key, for scripts and the same limits.
GET https://fennick-hub.fly.dev/a/<your notebook>/apilists the tools, with what each one takes.POST https://fennick-hub.fly.dev/a/<your notebook>/api/<tool>runs one. The body is its arguments as JSON, such as{"title":"Garden plan"}formake_page, and the header isAuthorization: Bearer <the key>.- The answer is
{"text":"…"}. When Fennick says no, it is{"error":"…"}with a status of 400, 401, 404 or 429. A 429 also says how long to wait in itsretry-afterheader. - To send a change again safely after a lost answer, give it a
requestof your own: a change sent again with the same request lands once.
How your notebook stays safe
- Every change has its name. Your agent writes as itself, never as you. Each change is one entry in the Op Log, marked ✦, and you can undo it there.
- Many at once is listed first. When your agent acts on every block a query matches, and every time it puts something in the Trash or removes a tag, the first try changes nothing: it gets a list of what would change. It has to send the same change again to do it, within 10 minutes, and only if those blocks did not change meanwhile.
- Its undo is only for its own changes. Your changes, and another agent's, are left alone.
- Nothing is deleted for good. What your agent trashes goes to the Trash, where it can be brought back. Day pages are never trashed, and emptying the Trash is yours alone.
- Anything you run can use your connections. On your Mac, any program you run as yourself can use your connected agents' access, by asking your agent or by running the
fennickcommand. That is how a command on a computer works. Connect only agents and tools you trust, and end a connection when you stop using it. - On this Mac, it stays on your Mac. An agent connected under On this Mac talks only to the Fennick app on the same Mac. Its key and its calls never leave the Mac; only the changes it makes sync, as yours do.
- Through Fennick's server, only fingerprints are kept. A sign-in or a key is kept on the server only as a hash, never itself. Its calls and what it reads go through the server.
Give your agent instructions
Your notebook can hold your agent's instructions, like a CLAUDE.md file. They are ordinary pages, each with a tag that says what it is. When a session starts, Fennick tells your agent to read them first, and one step gives it all of them.
| Page | Its tag | What it is for |
|---|---|---|
| The start page | #agent-instructions | What your agent should know and do every time. It reads the whole page. Keep one start page in a notebook. |
| A rule | #agent-rule | Something your agent always follows. Mention it on the start page, or place it there, and your agent reads it in full every time. |
| A skill | #agent-skill | How to do one job. Give it a When to use field. Your agent sees one sentence for each skill the start page links, and opens the skill's page when the job calls for it. In Claude Code, each skill is also a command: type /fennick: and its name. |
| A reference page | #agent-reference | Something to read only when it is needed. Your agent sees the title of each one the start page links. |
| The memory page | #agent-memory | What your agent has learned, one topic a page, under one Memory page. It sees every memory page's title, newest first. |
Fennick makes these five tags in your notebook the first time you connect an agent. You can rename them or give them a color: they keep working, because Fennick knows them by what they are, not by their names. A tag of your own, such as #memory or #instructions, stays yours: your agent never reads it as one of these.
To set it up, make the start page and tag it, then make your rules, skills and reference pages, each with its tag, and mention them on the start page. You can ask your agent to do this for you, or to bring in a CLAUDE.md you already have as a page. Until there is a start page, your agent is told how to set one up, and nothing is made.
When your agent learns something worth keeping, it saves it to the memory page on that topic. It adds to that page, and never makes a second page for the same topic. The first time it saves, it makes the Memory page. Memory pages are like any other: read them, change them, or put them in the Trash.