Docs
PagesTasks & Projects

Tasks & Projects

Changing/projectsCore · always onChecked against code 2026-10-22 67bcbaca

This page is being reworked. What you read here matches the app today; the layout may move. Follow the changes in the What’s new.

Tasks is where your work lives. It is not a flat to-do list: a project is a part of your life (a job, a product, a move), and it holds branches, sections, tasks and steps. Focus is the short list of what you are working on now, and each project remembers what was decided, what is still open and where you stopped.

What you see

Three views at the top:

  • Focus — one calm column at /focus. At the top, one chip picks the project Focus shows (All, or a project with how many of its tasks are in Focus); the choice is remembered. Then the task you are on, as a single card — its branch and step, its result, the steps, up to three saved materials For this task, Start session and Done, and a field to drop a thought. Under it Next (the rest of Focus) and Could take (up to three tasks, each with its reason). No side panels and no daily limit.
  • Projects — «Проекты N» and + New, then the cards three to a row (mockup 2-1). A card is the project's dot and name, what it is for («ради …», or «без конца · сфера») and one line of where it stands: OnePuls's summary, else the last thing done, else what the project is about. When something in the project (with its branches) waits for you, that line becomes one waits for you line instead, the most important thing first, then «ещё N»: an agent's question (Codex ждёт ответа — amber dot, bold, the agent's logo; a click opens the project on its Inbox), work handed in by an agent or an AI over MCP (Claude Code сдал · проверь), your own passed deadline (Срок был вчера · эссе, grey with a calendar, never red), a task someone gave you in a team project lately (seven days — there is no «when given» field). Ordinary Inbox items stay in the Inbox; nothing else is coloured. No project is one more card while it has open tasks; the Inbox chip shows thoughts that fit no project; the On hold box keeps the projects you packed away. The project tree panel shows only inside a project. «All tasks» opens from Focus («все задачи»).
  • All tasks — every task in one list with search, filters, project chips and bulk selection, grouped into Overdue / In progress / To do / Done.

Inside a project:

  • The header: the project's colour and name (a branch shows its parent first), your AIs that write here (their logos — those you allowed to write over MCP), a lock when the project is closed to AI, and + Task. Under the name, one line: About the project · for: its goal — click the words to edit them right there. There is no ⋯ menu: what it held lives in Settings.
  • Tabs: Overview (where it stands), Tasks (List or Month, mockups 3-04 / 3-06), Ideas (Path — the project's steps with ideas on them — or List; see Ideas), Notes (with a Materials filter — the links saved in the project), Atlas (a map of the project), History (everything that happened), Inbox — only while the archivist has left something for you to decide — and, on the right, Settings (also linked at the bottom of the Overview).
  • Settings has five cards. Project: name and colour, About, the goal (from Goals), where it sits with Move…, and Open-ended — an area of life (Health, Home) with no What next on its Overview. AI: who of your own AIs (Claude, ChatGPT, Cursor over MCP) may see the project — Closed, Read only, Read and write — and one switch per connected AI (Can't see / Reads / Writes, never above the project's level); the project's AI helper, if you have one; Instructions for AI, which your AIs get with the project; and Brief for an AI without access (copy it, or download the whole project as .md). Team: «for now the project is yours alone» (making it a team comes later). Move: the apps it came from, with Undo the move… — only for a project a move brought. Put away: For later and Delete (the window says what goes: tasks, branches, History; notes, ideas and Atlas boards stay without the project).
  • Sort later in the projects panel: links saved with no place yet. The row shows only while something lies there.
  • Notes is a slice of the project's notes, not an editor: cards with pinned notes first, then the latest. A journal (a note kept as dated entries, «13.10 — …») shows its newest entries; every card says who wrote or last changed it and how many History records mention it. A card opens the note in Notes; All notes opens Notes on this project. The Materials chip shows the project's saved links instead of the cards.
  • The path (stage A, mockups projectUI.pen § 8). A project may have a path — its stages in order, each ahead, here, done or dropped, a stage with up to one level of smaller steps. The path is a draft that changes as you go, not a plan to follow: the plan and the path are one thing. The Overview opens with it — the stages as a line («2 из 5»), you are here on the stage with the freshest work, and the card of that stage: its tasks, decisions, dead ends, tools, result and time, only what is not empty, «done when» if you wrote it. Tasks shows the stages as its sections, with their state and progress. A project without a path looks as before.
  • History is everything that happened, newest first: search (by words, and by meaning — a Russian question finds an English record), kinds on a row (All · Done · Decisions · Dead ends · Tools · Results, more under more ▾), and Stage · Topic · Who · Period. Main by default, All adds the service steps (a stage added, renamed, finished — every path change is a record). A record is shown in your language; translated from EN shows the original. Correct changes a record's kind, stage or topics — never its words.
  • Pour it out (Выгрузить, on Tasks): one box for everything about the project, in as many messages as you like, over hours, typed or dictated; nothing goes to work until Sort it out. Then Laid out like this: tasks by stage, each with its package — why, your words verbatim, done when, depends on, where in the code — checked against the tasks already there (add to it), and who does it: you, a person in the project, an agent, an AI. Yes, lay it out writes them; Undo takes them back.
  • Atlas is a preview: a live mini-map of the project's main board (the one changed last), who drew it — you, OnePuls, or your own AI by its logo — its other boards, and a phrase to give your own AI («Draw in PulsOne Atlas …») with Copy. Open goes to the canvas. With no board yet: Create a board starts one from the project's sections, tasks and ideas.

With no projects yet, the page offers two ways in: Tell OnePuls (talk the project through) and Move from… — the move from other apps at /projects/move. On What we take, Path and ideas — Draft the path lays the ideas the move brings (and the old tasks going to Ideas) on the steps OnePuls drafts, or aside; an empty step is said plainly; the path comes with the move and goes with Undo the move.

How to use it

  1. + New → Tell OnePuls (the default): say or type what is on your mind — one thing or several. OnePuls checks it against the projects you have and answers Here's what I got: a card per thing — a new project (goal, branches, first Do / Find out tasks, open questions), add to a project you already have (goal was → now, new tasks), already there, or not sure (an idea by default, or a branch, or a project of its own). When the story has an order of work, a new project comes with a path draft — 3–5 stages, from your story; drop it or change it, it is yours. Untick, edit, press Create; Undo in the toast takes all of it back. While it works you can Minimise — Ready comes to the Island. The other choices: Move from… (another app), Empty project and From a template.
  2. New task → pick Project › Section, write the name, add steps (Enter for the next one), mark it important, give it a deadline or put it in Focus. Quick syntax works: call the bank tomorrow #finance !important.
  3. Open Focus, pick the project, take a task, press Start session. The card turns into the session: a big timer, the steps with now, and a field for stray thoughts with the ones you already dropped. Pause, Finish, and then a 5 min break ▾. Lengths of the session and both breaks are behind ⋯. Session without a task runs the same timer with nothing attached.
  4. After the session, look at the review: what got done, where your thoughts went, and what OnePuls suggests. Apply what you agree with. Closed the tab, or ran the session from the island or the phone? The summary comes by itself — Last session's summary in Focus and a row in Waiting for you on My Day; Continue or Got it.
  5. Coming back after a while? Open the project's Overview, or Full project history from it.
  6. A lot in your head about one project? Tasks → Выгрузить, pour it all out, Sort it out, check the cards, Yes, lay it out.
How it worksfor the curious

Structure. Project → branches (sub-projects, one level deep) → sections → tasks → steps. A branch is part of its project and moves with it. A project may hold only notes and still be a real project. Steps are counted on their task, never as tasks of their own.

Focus is not a date. Putting a task into Focus or taking it out never touches its deadline. A task set to in progress anywhere is in Focus automatically. It stays there until you finish it or remove it.

Sessions. The timer lives inside Focus (the old Pomodoro page opens Focus, and a session that was running keeps running). A focus session records its real minutes; a task shows how many sessions and minutes went into it. While a session runs, the head shows today and this week. Every fourth session of the day is followed by the long break unless you choose otherwise. When a task has not had a session for a few days, its card opens with Where you stopped — a line OnePuls writes and you can correct.

The session summary (stage B). Every session gets one, a session without a task too: its minutes and what got done in its time — steps and tasks closed, materials saved, what your own AIs did over MCP — read from what PulsOne recorded, never asked for; and Where you stopped. Another session on the same task (without a task — the same project) within two hours adds to the same summary: «50 min · 2 sessions». When something got done, one progress record goes into the project's History. Nothing to fill in.

The session feed (stage B, desktop app on Windows only). With Feed switched on next to Done, the app notes which programs and windows you worked in while a session runs — Feed is recording · steps stay on this computer, with Pause feed. The steps never leave the computer (encrypted, erased after 7/30/90 days). After the session its feed waits in Focus: remove any row, then Send — or it goes by itself in ~10 minutes; Leave the feed out drops it. OnePuls then writes a short Summary and Details (the work told by its parts) into the session's summary; you can Edit them or ask OnePuls to add to them. The team never sees it.

What to take next. One rule for the project's What next and for Focus: in Focus, deadline within a week, the task you touched last, in a starred branch, in progress. Focus also names quieter reasons — quick, a later deadline, an open question. When nothing of the chosen project is in Focus, Focus offers one task with its reason and Take and start.

Materials. For this task shows up to three saved links: those saved on the task first, then the project's ones that match it by words. Not it hides one under this task for good. Links the Telegram bot is still asking about are never shown.

Thoughts find their place. There is no Backlog to tend. Anything you capture — in the Island, in Focus, during a session, in its summary, or from OnePuls and your own AI — goes to the archivist, and it files the thought by itself: decisions, questions and thoughts become History, ideas go to the project's Ideas, and something to find out becomes a Find out task. It first decides where the thought belongs across all your projects. Thoughts from a session wait about ten minutes before they are filed, so you can change where they go; everything else is filed every 15 minutes. Each thought shows a label like idea · PulsOne › Marketing; click it to move the thought. Ideas go further — a piece of an idea you already have, or a new idea on its step; the session summary's To ideas shows where each went, with not that (see Ideas).

Inbox — only what the archivist could not settle. A project's Inbox tab appears with a count when something waits, and disappears when it is empty. Three kinds of rows, each with where it came from (a session, you, OnePuls, Claude, ChatGPT…) and when: not sure where (pick one of 2–3 places, then Accept · Not needed · Later), decisions disagree (a new decision contradicts the one in force — Keep … · Replace with the new one · Later; an AI never overturns your decision on its own) and looks like a duplicate (two open tasks — Merge makes the newer one a step of the older, nothing is deleted; Keep both). Later hides a row until tomorrow. Every settled row leaves a service step in History (visible under All); the tab shows Sorted today: N → to History. There is no input field.

Suggestions, never silent changes. From what you said, OnePuls may suggest a step, a task or an idea — with the reason — in the session review and on the Overview. Nothing changes until you press Apply, and Undo is right there. Tasks untouched for 60 days, with no deadline and no open steps, are listed as Not touched in a while — a rule, not the AI.

The project's memory. The Overview is the snapshot (mockup 3-01), in white cards: Where you are — OnePuls's summary in large type, the line that changed since your last look marked, «you were away 3 days», «updated by OnePuls · 09:12 · versions» — with the project's History under it (Main / All, «2 new since last time», five steps that open into why, was → became and how it was done, All history); What next — up to three tasks with their reason, the first one starts a session right away; Open questions, answered right there or taken into work as a Find out task; OnePuls's suggestions to the plan; Branches with ★ and «2 in Focus · yesterday». Your last look is remembered on this device (src/lib/projectSeen.ts). Team day (stage B, B6; mockup DtInb) opens the Overview of a shared project: Today · Yesterday · Week; links between people one line each, only when there is one — two in the same stage, an agent waiting for an answer (Answer opens the task), someone's open question; then a card per person or AI with only the lines that are not empty — Did (closed tasks and steps by stage, credited to whoever closed them — tasks.completed_by, set by the database — else the assignee, else nobody), Decision (from History, with the reason and time), Result, Asked (an agent's question and the answer), Stuck, Next (the next open step of the task worked on last) — and the time from focus sessions on this project. Built by rules from rows the team already shares; the minutes come from project_team_day. Admin and manager see everyone; a member sees only their own card, and your card says «how the team sees you». More detail on a card asks OnePuls to connect the same lines into a few sentences — from those lines only, shown in the card, not saved. The session feed and private thoughts are never shown. History is the one feed of what happened. All of it is selected from what was actually recorded — your words, closed tasks, settled hypotheses — the screen never invents a sentence. What your own AI wrote into the project over MCP is there too, under its name and logo: a note it made (Main), a note it changed and a task it added (All), its questions and the answers they got — read from the write receipts (aiWritesIn in src/lib/projectSpine.ts). Find what you need with the search (by words for now — by meaning comes with stage A's backend) and the filters: kind (Done · Decisions · Dead ends · Tools · Results, the rest under more; a kind with nothing in it is not offered), Who and Period; picking a kind shows all of it, not only Main. When the project has stages (stage A, docs/stage-a-data.md) there is also Stage (with its smaller steps) and Topic, each row says its stage and topics, a record written in another language shows in yours with translated from EN (click — the original), and correct fixes its kind, stage or topics — never the text (src/lib/historyFilters.ts, src/lib/historyEditApi.ts; the correction is bench-only until the migration). Build a report in History's header opens a wide window (mockup 3-03): on the left the brief — period (week / month / your own dates), for whom (myself / client / manager / team), what to include (done, decisions and why, what's next, open questions, time and sessions, how it went), tone and length, and your own request with + deadlines, + risks, + no numbers; on the right a white A4 sheet. Nothing is written until you press Build: OnePuls then writes the sheet live from the History's records for the period. Change the brief and Update takes the lead («brief changed»); the sheet as it is can still be downloaded. Download saves a PDF or a .md. Save the brief as the «Client» template keeps the brief for that audience — picking it next time fills the brief in. The report is not stored; nothing is written into History.

Materials. A saved link — a video, an article, a reel, a post, a file — lies where you saved it: on a task, on a project, or on the shelf Sort later. In an open task, + material → paste a link → Save: the type and the app show at once, the page's own title comes back with the saved link. A project's Notes tab has a Materials filter: the project's links, its tasks' and its branches', grouped by type, each with the place it lies on; ⋯ moves a link (to the task in Focus, a project, Sort later) or removes it. In the Island, a bare link — or a link with a few words and no question — goes to Sort later; a question about a link goes to OnePuls. With PulsOne installed on an Android phone, Share → PulsOne opens a sheet with three places — the task in Focus, the project touched last, Sort later — and one tap saves. Search through an aggregator (Recall, Remly, Glean…) is listed, but cannot be connected yet.

On hold. Put on hold folds a project, with its branches, into the On hold box. Its tasks leave Today and the counters, and OnePuls remembers it but does not bring it up. Its page stays readable under a veil with Back to work.

Moving in. /projects/move brings work over from Todoist, Notion, Evernote, ChatGPT or Claude and plain files, in three steps. From: pick several apps at once; each gets its simplest way in — an export file, a phrase for your own AI connected to that app over MCP, or a prompt for your AI chat whose answer you paste back. Nothing is read while you add files or paste: Next reads them all at once (a row says «added — read on Next» until then), and stays on From when nothing could be read. What to take: everything found, by app. One project kept in two apps arrives as one (merged: Notion · Todoist), duplicate tasks fold, and a project with the name of one you already have goes into it. One project is ticked by default; All at once is a box you tick yourself. Open tasks untouched for 90+ days are Put off in the move and go to the project's ideas unless you take them. Where to start: done tasks keep their dates, so they sit in History on the day they were done; stated decisions and questions become History entries dated as in the source; notes become project notes. OnePuls writes a first summary, you put 1–3 tasks into Focus, and Undo the move deletes exactly what the move made.

Moving in from code. Picked GitHub and Claude Code: connect PulsOne to Claude Code once (one line in the terminal; Cursor and Codex take the same link) and say Move this project to PulsOne in the project folder. Claude Code reads the code, git, pull requests, issues and its own sessions on your computer — they never leave it — and sends a draft; the screen waits for it (Claude Code is reading…) and goes on by itself. What to take shows the project by stages (how it was built): each record with its kind (Result · Decision · Dead end · Tool · Question), its receipt (a PR, an issue, a commit, a session) and its date; a decision in your own words; replaced → yt-dlp where you changed your mind. Not sure comes unticked. The CLAUDE.md note can become the project's Instructions for AI by a tick. Foundation and ideas puts each idea in its pillar › branch; an idea off the foundation comes only when ticked; empty pillars are named. A line says how much was taken from how much («41 records out of 1 214 commits, 312 PRs and 180 sessions»). Where to start shows Ideas found their place in the foundation (the pillars with their ideas, the empty ones with Come up) and Keep recording: Claude Code shows three lines for CLAUDE.md and, after your yes, saves each session's decisions, dead ends and results. Moving again from the same repo brings only what is new. A claude.ai export (ZIP) brings its projects — instructions as a note for AI — and its chats as topics.

Team. A project can be shared with a small circle: Settings → Team → Make it a team. Invite copies a one-use link for 7 days (nothing is emailed); whoever opens it signs in and is in. Roles: Admin (everything, access included — the owner always is one), Manager (tasks, assignees, decisions), Member (own tasks, thoughts, answers). The project, its branches, sections, tasks, History and notes are shared; ideas, materials, Atlas and Inbox are not yet, and Focus stays personal. Tasks get an assignee — a person, or one of the owner's AIs set to Executor with the person who answers for it; a task for an AI needs What should come out. The Tasks tab filters Mine · All · Unassigned. Make it yours only takes everyone out at once; what they wrote stays. Others' changes arrive when you come back to the tab and every 90 seconds. Details: docs/team.md.

AI Agents. A project's own agents on the person's own server — Claude Code, Codex, Gemini CLI, Cursor or a script. The tab sits between Tasks and Ideas, in solo and Team projects alike, and lists the agents, their server, and whether it is online. + Agent connects a server once (npx -y https://pulsone.app/runner-<version>.tgz connect <code>, the code lives 10 minutes), then picks one of the agents that server's runner allows and the folder on the server it works in for this project. Branches share their project's agents. The agents, the model keys and the compute stay on the person's server; PulsOne can start only what the runner's config.json lists. Servers are renamed or disconnected in Settings → Account → AI agent servers. Giving a task to an agent is picking it in Who does it — in solo projects too; the task needs What should come out. It starts within seconds: the drawer shows the agent working, short lines of Progress and the full log, and Stop. When the agent hands it in, the drawer and the task row say handed in · check it: Accept closes the task, Return (with an optional note) sends it back for another go. The tab shows what each agent is doing now — working on a task, queued, busy in another project, online or offline — and Handed in · check. An agent that cannot go on without a decision asks: the task shows {agent} asks with the question, one-tap choices and a field for one's own answer; the same question waits at the top of the project's Inbox and on the phone. The agent goes on with the answer, and the question and the answer stay in History as a decision. Questions come only from agents — people talk in their own messenger (docs/ai-agents.md).

Elsewhere. A task's deadline puts it on that day in the Calendar; a calendar block gives it an hour. Projects can carry goals (see Goals), and a project can have its own AI in OnePuls. On a phone, /projects shows a phone layout of the same data. Focus (the task now and «Дальше», across projects) has its own address, /focus; on a phone it lands on «Сегодня», where the current task lives.

What OnePuls can do herefrom the code
  • tasks
  • projects, sub-projects and a project's own AI
  • sections inside a project
  • a thought for the archivist to file into a project
  • a project's «Входящие» — what the archivist left for them to settle
  • assumptions to check
  • topics put off for later
  • the session feed's summary — rewritten when you correct it