Skip to content

Features

What Project Orchestrator does

Plans, tasks, notes, decisions and specialized assistants, kept together in one memory for each project. See what Project Orchestrator does for you.

01

Projects, with or without code

A project holds its own plans, tasks, notes and decisions. It can be a codebase, or a piece of work with no code, such as an event or a budget.

  • Shows all your projects on one screen, Today: what waits for your answer, what to resume, what moves on its own.
  • Groups several projects in a workspace that shares context and objectives.
  • A project with no code is created by asking an assistant for now. The project form in the app does not offer the choice yet.
Under the hood

A project has a profile: software is a codebase that is synced and watched, work is documents, plans, tasks and notes with no source tree.

  • project · create
  • workspace · list
  • project · get_roadmap

See how it works

02

Objectives, plans and tasks

An objective is what you aim for. A plan says how to get there, as tasks and steps. PO shows what is done, what is blocked and what comes next.

  • Tracks the status of each step, task and plan, with the progress added up.
  • Shows the longest chain of tasks, so you know what sets the end date.
  • Shows the same plan as a map of links or as a board with columns.
Under the hood

The longest chain is the critical path, computed from the dependency graph with plan(action: "get_critical_path").

  • plan · get_critical_path
  • task · add_dependencies
  • step · update

See how it works

03

Assistants that work together

PO groups the tasks that do not depend on each other and gives each one to its own assistant. Four tasks run at a time by default. PO checks the result before the next group starts.

  • Shows live which tasks have started and which are finished.
  • Stops a run at any time, and keeps the list of past runs with their status.
  • Starts a plan on a schedule or when something happens, with nobody at the keyboard.
Under the hood

plan(action: "run") starts the runner on its own git branch, from a project folder. The build check runs for Rust, Node and Go projects.

  • plan · get_waves
  • plan · run
  • plan · run_status

See how it works

04

Notes and decisions

Notes and decisions belong to your project, its tasks and its files. Each one has a status (active, needs review, stale or obsolete), so assistants know what to trust.

  • Saves a decision with its reason and what it affects, and replaces it when it changes.
  • Finds a note by meaning, not only by exact words, and lists the notes that need a review.
  • A proposal puts a change up for review before it is decided.
Under the hood

Notes and decisions are nodes in a Neo4j graph. Notes used together are linked by synapses that grow stronger, and a search follows those links.

  • note · search_semantic
  • decision · add_affects
  • note · get_needing_review

See how it works

05

Documents

Documents are filed under a project. The original file stays on your computer, and PO cuts the text into passages that remember where they came from.

  • Upload a file to a project, open the original again later, or delete it.
  • Reads the text of PDF and text files.
Under the hood

Originals are stored on local disk, addressed by their SHA-256. The text is cut into chunks that keep their position in the source.

See how it works

06

Specialist assistants

A persona is an assistant specialized in one area of your work. A skill is a group of related notes that the assistant switches on by itself when the topic comes up.

  • Picks the persona that fits the task.
  • A persona sets a time limit, a cost limit and the model for its tasks.
  • A skill goes from emerging to active, and to dormant after 30 days without use. Skills can be exported and imported.
Under the hood

Skills are detected from clusters of notes (Louvain community detection). Each one has an energy and a cohesion score. The persona builder offers code-based modes and a manual mode.

  • persona · get
  • skill · activate
  • skill · export

See how it works

07

Repeatable procedures

A protocol is a procedure with a start, steps and an end. The assistant follows it in order, and each run is recorded.

  • Define the steps and what moves a run from one step to the next, then start a run and follow it.
  • Link a protocol to a skill, so it starts when that skill applies.
  • A run can wait for a person to review before it goes on.
Under the hood

A protocol is a finite state machine: start, intermediate and terminal states, and transitions fired by triggers. plan-runner-reviewed adds an awaiting_review state.

  • protocol · add_state
  • protocol · start_run
  • protocol · link_to_skill

See how it works

08

Sharing, with your consent

Each project has a sharing policy: manual, suggest or auto. In manual mode, nothing leaves without your approval, note by note.

  • A copy received by another PO expires after a set time, and the owner can take it back.
  • Secrets such as passwords stay in a vault. An assistant gets access only for a limited scope and time.
  • Early version: the approval step, the expiry and the revocation exist. The exchange between PO instances is still being finished.
Under the hood

Each instance signs what it sends with an Ed25519 key and a did:key identifier. Revocation is a signed tombstone.

  • sharing · set_policy
  • sharing · set_consent
  • sharing · retract

See how it works

For developers

PO also reads your code

PO turns each repository into a graph of files, functions, types and calls, and answers who calls a function and what a change affects. Every concept is a tool for Claude Code, Cursor or any MCP client.

Under the hood
  • Parses Rust, TypeScript, Python, Go, Java, C and C++, Ruby, PHP, Kotlin, Swift, Scala, Zig, Dart and more.
  • Searches code through Meilisearch, across one project or a whole workspace.
  • Connects other MCP servers through mcp_federation.

Tree-sitter parses the code into a Neo4j graph, and a file watcher keeps it in sync as you edit.

  • code · get_call_graph
  • code · analyze_impact
  • code · find_references
  • mcp_federation · list

Get started

Give your agents a memory and a plan

Install the orchestrator, connect Claude Code over MCP, and let your first agent read the project before it writes a line.

Or start from the terminal

brew install this-rs/tap/project-orchestrator