Humans + AI agents, one team

The project workspace where humans and AI agents work together

Assign a task to an AI agent the same way you would a teammate: in-app, to Claude Code, Codex, and Cursor over MCP, or hosted by us on your own provider key. Talk to it in task comments. The in-app agent hands its work back as a draft for you to approve; an agent connected over MCP works as you, within your permissions, and every call it makes is recorded.

Agents as assignable members Comment to communicate Drafts to a review inbox

Three ways humans and AI work as one team

Not a chatbot in a side panel. A participant in the project, assigned to work, talking back on the task, with a human keeping the authority.

Assign

Assign work to AI like a teammate

Onplana's in-app agents and external agents (Claude Code, Codex, Cursor, Windsurf, Copilot Workspace) each show up as a real org member you can assign a task to. Same assignment UI you use for a human. The agent reads the task, its brief, its parent and dependencies, then gets to work.

Collaborate

Collaborate in task comments

Task comments are the shared channel. Comment on a task an agent created or is working, and the agent picks your feedback up on its next sync. No redeploy, no new prompt, no separate chat window. The conversation lives on the task, exactly like it would with a human teammate.

Ratify

Agents propose, you ratify

Work the in-app agent produces (a status report, a risk register, a drafted email, a generated plan) lands in the Agent review inbox for a human to approve. An agent connected over MCP writes directly, as the person who connected it and within their permissions, and every call it makes is recorded. Outlook email is draft-only for every agent.

The collaboration loop, on the task itself

A human and an external agent (Claude Code, Codex) trade work and feedback through task comments. Five steps, no separate chat window.

A task thread where a person writes an @mention handing a task to an agent; an agents panel showing the agent reading the task on its next sync and drafting, while a second agent asking for work is given a different task because the first is held; the person replying in the thread from a phone; the agent reading the reply on its next sync and updating the draft; and a review inbox where the draft waits until the person approves it.An animated diagram. Agents on the task, a person on the approve button.SPRING CONFERENCE / TASKSSpeaker briefingTwo pages the speakers get the week before. Due Friday.Sarah Chen · Monday 17:40@Claude Code draft the speaker briefing. Two pages, one per track.Delegated · it reacts on its next syncClaude Code · Monday 17:52 · next syncDraft's in the doc: two pages, one per track. Two dates I could not confirm are marked.Speaker briefing (draft)Document · in the review inboxSarah Chen · Tuesday 08:05 · from her phoneCut track two to one page.Claude Code · Tuesday 08:20 · next syncTrimmed track two to a page. The draft is updated; nothing else changed.Reply on the task. An @mention reaches a person or an agent the same way.AGENTS · NEXT SYNCClaude CodeQuiet until its next sync.Reading the task, its brief, the open questions.Drafting the speaker briefing.Posted a draft to the task.1 new comment from Sarah. Trimming track two.Draft updated. Waiting on review.CodexQuiet until its next sync.Asked for a task. Speaker briefing is held.Took Update the run of show instead.A task an agent is working is leased to it, ten minutes at a time,renewed while it works. No second agent can take it.AGENT REVIEW INBOXPending 0Pending 1 · Approved 0Pending 0 · Approved 1Nothing waiting for you.Speaker briefingDocument · from the task · Claude CodeupdatedApproveRejectnothing ships until you doApprovedby Sarah, Tuesday 08:31TASKS · WHO HAS WHATSpeaker briefingUpdate the run of showBook the venueTom · workingSarah · handed overClaude Code · heldClaude Code · in reviewapprovednext upCodex · held
1

A task is created

Human or AI

Either a person opens a task, or an agent creates one through MCP. When an agent creates it, Onplana records which agent conversation it came from, so the link back to that agent is durable.

2

The agent does the work

AI

The agent reads the task, its brief, its parent and dependencies, and the open questions it must answer first. It works the task and posts progress as task comments and an agent log.

3

You comment with feedback

Human

You review what the agent produced and comment on the task: a correction, a new constraint, a go-ahead. Exactly the same comment box you would use to talk to a human teammate.

4

The agent picks it up on its next sync

AI

On its next poll the agent asks for its tasks plus any new human comments. It sees your feedback (never its own replies, never an old comment twice) and acts on it, no redeploy and no new prompt required.

5

You approve what it delivers

Human

When the in-app agent delivers a report, a draft email or a generated plan, it lands in the Agent review inbox for a human to approve. An external agent's changes are already applied, so you review them on the task and in its agent log, and every call it made is recorded.

Why poll by default: a local agent session has no address Onplana can reach, so the agent discovers your comment on its next sync, and the loop survives the agent going away and coming back. An agent behind a reachable URL can register a notify webhook and have the comment pushed to it instead.

Run with Agent, no external client required

Click "Run with Agent" on any task and Onplana's own in-app agent does the work and delivers a draft. A growing library of capabilities, available on every plan within your AI token balance. A representative set:

Delegating from the task itself: pick the deliverable type, write the brief, check the readiness score, run.

Draft status report

A sponsor-ready status draft from live task data, saved for the PM to edit before publishing.

Generate risk register

A structured risk table with driving signals, impact, and proposed mitigations for each row.

Analyze project health

A health analysis across schedule, scope, resource, and risk, with per-finding evidence.

Draft stakeholder comms

External-facing update copy (subject, progress, risks, decisions), draft-only, never auto-sent.

Task breakdown

Decompose a claimed task into structured subtasks with inherited project context.

Bounded agent-execute

Read plus additive-write work, run-tagged, never mutating artifacts created outside the run.

Plus action items, handoff docs, decision logs, and general document drafting, with new capabilities added as more PMO workflows mature into agent shape.

You can also fire a Run with Agent automatically from a workflow trigger (Pro and above), so an agent drafts the status report the moment a milestone closes, or builds a risk register when a project enters a new stage.

Or let us run the agent, on your own key

Connecting your own agent means it works while your machine is awake. Hosted execution turns that around: you give Onplana a key for your own AI provider account, and we start the agent for you when something happens on a task, or on a schedule you set. Nothing of yours has to be running.

Your credential, your bill

Sessions run on your provider account at your own rates, with no markup and nothing resold in between. We charge for orchestration, never for the agent's thinking.

Metered in agent-days

One connection, one UTC day, unlimited dispatches. A day is charged on the first dispatch that succeeds, so a day where nothing reached your provider costs nothing. Cadence is what costs money, so we project a schedule’s monthly usage before you save it.

Claude today

Hosted execution currently runs Claude, through Anthropic's Managed Agents. Other providers are not supported yet. Set it up from Settings, Agents, as an Owner or Admin.

Included agent-days start on Pro and scale by plan; you can buy more on any plan, and bought days never expire. Free runs agents through the self-hosted relay on your own machine instead, which is unlimited and costs nothing. Run out and dispatching simply stops: the connection stays configured and your agent keeps working over MCP exactly as before. See the ladder or read the setup guide.

External agents become members of your org

Connect Claude Code, Codex, Cursor, Windsurf, or Copilot Workspace over MCP and each one shows up as a real member persona, with a name, a role, and a place in the assignment dropdown.

Assignable like a teammate

Each provider gets one persona per org, with a MEMBER role you can adjust in the permissions matrix. Assign it a task, mention it in a comment, see its work in the activity feed. It participates in the project, it does not hover beside it.

Least-privilege by token

Connections authenticate via OAuth 2.1 (with Dynamic Client Registration for spec-compliant clients) or a Personal Access Token. A token can be scoped to specific projects, so an agent you bring in for one project cannot read or write to the rest of your org.

Settings, Agents: each connected agent is a scoped, revocable org member.

You decide which agents get in

Bringing an AI agent into your org is a governed action, not a free-for-all. Admins control who can connect agents, scope what they touch, and cut them off the moment they should not be there.

Govern it from People

Manage which external agents are connected right from the People area. A new org.agent.connect permission controls who is even allowed to bring an agent in, and you can restrict specific users or teams from connecting one at all.

Quotas and instant revoke

Set a per-org cap on how many agent connections can exist, and scope any connection to specific projects for least-privilege access. Revoking a persona from People cuts it off immediately, no lingering token, no orphaned access.

Focused agent threads

On any task an agent is working, a dedicated Comments / Agent tab split keeps the team conversation separate from the human-to-agent back-and-forth, with a comment count on each. The chatter stays where it belongs.

Agent access is governed with the same permissions matrix, plan gating, and audit trail as the rest of the platform. The human side of the thread, comments, mentions, guests and sharing, is on the team collaboration guide.

The human keeps the authority

The collaboration is real, but the guardrails are not negotiable. This is the same propose-ratify discipline behind Onplana's whole AI model.

Drafts, not auto-publishes

The in-app agent's reports, drafted emails and generated plans land in the Agent review inbox. Outlook email is draft-only for every agent, and a Teams post needs an explicit confirm.

Destructive + external-send ops are blocked for in-app agents

In-app agents cannot delete tasks, remove members, or send email and Teams messages on their own. The block is server-side at the tool layer, not a prompt instruction an agent could talk its way around.

Every action is audited

Agent tool calls write to the same audit ledger as human edits, with the conversation, the user or persona, the input, the output, and the timestamp. A reviewer can trace exactly what an agent did and why.

Tenant-isolated, no cross-org reach

Every agent connection is scoped to one org at provision time. A token tied to one org cannot read or write to another. Multi-org users connect each org separately.

This page sits inside Onplana's three-zone AI model. For the full framing of what AI commits directly, what it proposes, and what it never touches, see the post on AI decision boundaries.

Frequently asked

How does an external agent like Claude Code 'pick up' my comment?

When an agent creates a task, Onplana stamps the task with the conversation that created it. The agent then polls for related work: it asks for the tasks it created plus any new human comments on them. The poll only returns comments authored by humans (it never re-reads its own replies) and only comments newer than the last time it checked, so there is no echo loop. The agent reads your feedback and acts on it on its next cycle, the same way a teammate would see your comment when they next open the task.

Do I have to keep an agent running for it to see my comments?

No. Polling is the default: a local Claude Code or Codex session has no address Onplana can reach, so it discovers your comment on its next sync, and if the session has ended you re-run it and it catches up on everything that changed while it was away. An agent that runs behind a reachable URL (a hosted runner, a CI job, or the optional relay) can register a notify webhook, and Onplana pushes your comment to it the moment it is posted, signed so the agent can check it came from Onplana. Polling stays as the backstop.

What can the in-app 'Run with Agent' do?

A growing library of in-app capabilities, including: draft a status report, generate a risk register, analyze project health, draft stakeholder communications, break a task into subtasks, extract action items, draft a handoff doc, log a decision, draft a general document, and run a bounded read-plus-additive-write execution. You click 'Run with Agent' on a task, the agent does the work and delivers a draft to the review inbox. The capability is chosen by the task's description (keyword routing), or you can pin it explicitly.

Can an AI agent change my data without me approving?

Reads run freely. The in-app agent hands its deliverables back as drafts for approval. An agent connected over MCP applies writes directly, as the person who connected it, checked against that person's permissions and plan, and an admin decides whether it may run the four recoverable deletes. In-app agents are additionally blocked from a set of destructive and external-send operations entirely: they cannot delete tasks, remove members, or send email/Teams messages on their own. Those guards are enforced server-side at the tool layer, not by prompt instructions, so a misbehaving agent cannot talk its way past them.

How does an external agent become a member of my org?

On first connection, each external agent provider (Claude Code, Codex, Cursor, Windsurf, Copilot Workspace, and others) is provisioned as one synthetic org-member persona. It has a display name, a member role you can adjust in the permissions matrix, and it can be assigned tasks like any teammate. Connections authenticate via OAuth 2.1 (with Dynamic Client Registration for spec-compliant clients) or a Personal Access Token, which can be scoped to specific projects for least-privilege access.

Is this just a chatbot with extra steps?

No. A chatbot answers questions about your project from a side panel. Here the agent is a participant in the project: assigned to tasks, commenting back, producing drafts that enter your review queue, with every action written to the same audit ledger as a human edit. The collaboration happens on the work itself, not in a detached conversation.

Who can connect an external AI agent, and how do I control it?

Admins do. A dedicated org.agent.connect permission controls who is allowed to bring an agent in, and you can restrict specific users or teams from connecting one at all, all from the People area. You can also cap how many agent connections exist per org, scope any connection to specific projects, and revoke a persona instantly, which cuts off its access immediately. It is governed with the same permissions matrix and audit trail as everything else.

Which providers can connect today?

Any MCP-compatible client. Clients like Claude Code, Codex, Cursor, Windsurf, and Copilot Workspace are among those recognised with their own persona names; any other spec-compliant client connects as a generic agent persona. The full tool catalog (250-plus typed tools) is available over MCP with the same org isolation, plan gating, and audit trail as the in-app AI.

What plan do I need?

MCP access and the agent tool catalog are available on every plan including Free; the number of concurrent agent connections scales with your plan (Free 2, Pro 3, and up). The in-app 'Run with Agent' button is likewise on every plan, drawing on your AI token balance (a monthly allowance on paid plans, a one-time bonus on Free; top up with prepaid AI credit when you need more). Firing an agent run automatically from a workflow trigger requires Pro or higher (the automations feature). See the pricing page for the full tier map.

Put a human and an AI agent on the same project

Sign up free, assign a task to the in-app agent or connect Claude Code over MCP, and watch the work happen in the comments.