About LifeOS

A guide for agents

What this board is

LifeOS is one person's kanban. The board you reach belongs to the person whose token you were given, and every decision on it is theirs: what a card says, when it is due, whether it is done. Each card has a title, a next-step date and a body, and the date decides the lane it sits in. You reach the board over MCP. You can read all of it, and you can whisper on it: leave notes, comment on their goals, write a report or the morning briefing, link a card to where its material lives, and file a new card when they ask for one. You cannot edit, date, move, park, finish or delete a card, and that is the point rather than a gap to work around. They drive; you whisper.

LifeOS keeps no list of agents. Every note, card, report, briefing, link and memory you write carries a creator, a name of up to 60 characters, and that name is all there is of you: it is what the owner of this board sees on your notes, reports and briefings, what your runs are filed under, and what your memory is kept under. Pick a name they will recognise and use the same one every time. A different name is, to the board, a different agent.

Read before you write

Read this again whenever you want it: read_me_first returns this guide. Then start with get_board. It gives today's date in the owner's timezone, every category with its cards and their lanes, and the Inbox of cards with no category. From there, get_card gives one card in full: its body, the live notes on it with the owner's ratings and answers, and the links attached to it. It can also return the private background the owner wrote for agents, but only when you ask for it; ask only when you are about to think hard about that card.

search_cards finds open cards by words in the title or body, and it is the thing to run before you suggest that anything is new. list_categories gives each category's goals and background. get_goal_feedback shows what has been said about the goals and how the owner rated it. get_reports and get_briefings show what was written lately, so you can build on it instead of repeating it. get_status says what day it is for the owner and when something outside last wrote.

Every id you pass to a write should come from one of these reads. An id that names no card or no category is refused, and the reply says which ones were refused; nothing is written against an id you made up.

Where to reach for the common jobs

A note rather than a new card

Prefer one grounded note to a new card. A note sits on a card the owner already has, so it adds to their thinking without adding to their list. They rate each note, thumbs up or thumbs down, sometimes with a one-line reason, and when they answer a question the answer is stored with it. The next time you read that card with get_card, the rating, the reason and the answer are there. Read them before you write again: a thumbs-down is a direction to drop that point, and the reason says what to drop.

A note is a short lead line of at most 200 characters, then up to 800 characters of detail in the same voice. Bullets help when there are several facts. Pick one of the kinds the tool offers: a suggestion, a question, a risk, a nudge or plain information.

At most three notes are written per call; any beyond that are dropped and the reply says so. On each card you write to, your new note replaces your own earlier notes there that the owner has neither rated nor answered. Rated and answered notes stay, because they carry the owner's verdict. Other agents' notes are never touched. So you have, in effect, one live note per card: say the most useful thing, not everything.

Goal feedback works the same way. Each item is a lead line of at most 200 characters and up to 800 characters of evidence. At most three are written per call and only the first for any one category counts. A new item replaces your earlier one on that category unless the owner rated or answered it. Quote a few words of the goal so it is clear which line you mean, and point at something real: a card, a habit, a report, a date they set. A line that would fit anybody is the thing they rate down.

Filing a good card

Only file a card when the owner asked for something to be added. When you do:

A card you create is always open. It shows with a yellow box until the owner opens it, and a new note they have not seen yet marks a card the same way. Once it exists it is theirs: nothing you can call will change it again.

The briefing

The briefing is shown at the top of the owner's Today page. It has a headline of at most 140 characters, a body of at most 900 characters (about 120 words), and up to five priorities, each a card id with a reason. Priorities that do not point at an open card are left out. There is one briefing a day: writing again on the same day, by the server's clock, replaces it instead of adding a second. A weekly briefing is written the same way with the mode set to weekly. It is kept apart from the daily one and shown on Sundays and Mondays.

It is a morning briefing by convention, and the server does not check the time. Write it in the morning or not at all.

Runs and memory

start_run opens a run and gives you its id; pass that id as run_id to each write, and close the run with finish_run when you are done, saying whether it succeeded. If a write arrives without a run of yours that is still open, one is opened for it, and nothing closes that one. Closing your runs is how the list of what agents did stays truthful.

remember keeps small, durable facts under your name, as keys of up to 60 characters with values of up to 600. It holds twenty keys; past that, the ones you updated least recently are dropped. Each call returns everything you currently remember. Keep facts that will still be true next week there, not today's news.

When things happen

LifeOS schedules nothing for you. The owner decides when you run. The only scheduled job the deployment runs is the one that sends habit reminders. If there is something you should do every morning, it happens because whoever runs you set that up, not because the board asked.

The token you were given is the owner's own. They see it once on their Settings page, and re-issuing it there replaces it, so if every call starts coming back as a bare 401, tell the owner to re-issue their token and give you the new one rather than retrying.

What not to do