@giladbarnea/pi-simple-team

A flat, live team of Pi agents.

Packages

Package details

extension

Install @giladbarnea/pi-simple-team from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@giladbarnea/pi-simple-team
Package
@giladbarnea/pi-simple-team
Version
1.0.31
Published
Aug 17, 2026
Downloads
3,700/mo · 1,377/wk
Author
giladbarnea
License
MIT
Types
extension
Size
5.1 MB
Dependencies
0 dependencies · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ],
  "image": "https://raw.githubusercontent.com/giladbarnea/pi-simple-team/main/screenshots/pi-simple-team-banner.png"
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-simple-team

The team extension with no features.

pi extension npm version tests license TypeScript tested with Bun

No roles. No org chart. No mailboxes. No routing rules.

pi-simple-team spawns a small team of Pi agents that can all talk to each other, like the responsible adults they are, and then stays out of the way.


Why

I did my best work in a small room, together with a bunch of very capable people.

[shouts] Has anyone figured out how to set up auth yet?

Not filing a "request for assistance".

[taps shoulder] Dude can you grill me on this plan?

Not scheduling a meeting.

That's the whole design. Not a swarm, not a company. A room.

Install

pi install npm:@giladbarnea/pi-simple-team

Using pi-simple-team

Tell your main agent:

Spawn a team.

That's it. The team takes the shape of the mission:

You:

Create an implementer-reviewer team to complete PLAN.md.

Main agent:

Pair created. They'll loop through it together. They'll let me know when they're done.

A team appears, receives direction, and starts working

Watch a live team with /team.

/team is for you, not another agent tool. It gives you a live view of the room without turning the main agent into a status relay.

The command opens an overlay rolling recent statuses, messages, and a separate event log.

The mechanics

🏋️ Woken up when needed. Works freely otherwise.

Tokens, intelligence and time are never wasted on busy-polling for messages.

Instead, pi-simple-team pushes messages to the recipients.

This is both efficient and effective:

  • ✔ No inbox to forget.
  • ✔ Context window stays lean.
  • ✔ Unlocks arbitrary workflows.

{ironic screenshot of Codex filling up the entire visible chat with countless Waiting agents to finish...}

⚡ Messages arrive fast.

  • Sub-second, when the recipient is idle.
  • The moment the current bout of work ends, when busy.

🟢 Statuses everyone can see.

Teammates publish a one-liner:

implementer Done, 89 tests green, awaiting review.

reviewer Reading implementation, will finalize review in a few minutes.

Your main agent calls teamstatus and understands exactly what is going on. Main does not ask teammates for updates or clutter their context.

🌡️ Context window self-awareness

Teammates know how much free context they have left.

Main agent knows its own and everyone else's too.

They will hand off work on their own when it's time to say goodbye.

You can stop babysitting everyone's context window.

📣 Interrupts, when justified.

Situation: Late afternoon. Team finished production hotfix and started wrap up. There is one problem though.

  • 17:32:00: Security scout spots a private SSH key not covered by .gitignore.
  • 17:32:01: Release teammate sets status: Ran git add ., preparing commit and push.
  • 17:32:02: Scout immediately interrupts. Key never leaves the machine. Developer keeps their job.

📡 Live, zero-cost observability

Your main uses teamlog when it needs to understand the chain of events in high granularity: a timestamped, filterable timeline of messages, tool calls, and lifecycle events.

🪟 Herdr Mode

pi-simple-team can give each teammate a Pi session in its own Herdr pane. Just ask your main agent to do that.

  • Live view of the room.
  • Talk directly with teammates.

🧱 Teammates are durable Pi sessions.

A teammate is a normal Pi session with a team attachment.

This means every teammate can be resurrected, moved around teams and reused everywhere, anytime.

A teammate from one session can be added to a team in a later session.

You can even /resume a teammate session directly if you ever want a cozy one-on-one.

The full lifecycle and persistence rules live in ARCHITECTURE.md.

When one room is not enough

pi-simple-team supports teammates spawning and managing their own teams, one level down.

This is opt-in: when spawning a team, ask main to turn this on for one (or more) teammates.

That teammate stays in your team and becomes main for the teams it creates, with the same tools your main agent has. The boundary is strict: it manages only teams its own session created — never its parent team, sibling teams, or their teammates.

A room can open another room. It does not get the keys to the whole building.


Graphs engineer themselves

Because it does nothing special, pi-simple-team can construct any team graph you need:

You:

Team goal:

  1. Map all customer–product money streams in the database.
  2. Feed this knowledge into the harness.
  3. Prove the data analysis agent passes the new evals.

Note:

  • #1 and #3 are saturation loops. Stop only when you can't find anything new.
  • Let teammates #1 and #3 create their own teams to loop until task is complete.

That prompt gives you this graph:

The team graph: 1-map (Scout and Devil’s advocate) feeding subagent dispatch, feeding 3-eval (Engineer and Performance watcher)

Tools

Kept minimal:

Role For Tools
Main agent Team lifecycle team_spawn, team_list, team_resume, team_add, team_shutdown
With team teamsend
On team teamstatus, teamlog
On everyone report_context_window
Overseeing teammate On own teams Same tools as the main agent
With parent team teamsend, teamstatus, teammain
Teammates With team teamsend
With main teammain
On self report_context_window
Everyone For everyone teamstatus

Roadmap

User involvement track:

  • Herdr panes for teammates.
  • /team: live, read-only team dashboard.
  • Teammate drill-down and transcripts.
  • Joining and steering teams from slash commands.
  • Adding teammates to existing teams directly from slash commands.
  • Spawning teams directly from slash commands.

Functional:

  • Resume all or selected teammates from a dormant team.
  • Add new teammates after a team has spawned.
  • Let opted-in teammates create and manage teams of their own.
  • Main forces /compact on select teammate.
  • Teammates auto-reminded to hand off on low context.