npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ayorcodes/claudespace

v1.0.16

Published

Open a Claude Code multi-pane terminal workspace with one command (macOS and Windows)

Readme

claudespace

A small software team of Claude Code agents, in one command.

npm Platform License

Why

One AI session doing everything drifts. It redesigns while it builds, then reviews its own work and passes it.

claudespace splits the job the way a real team does. Each role is its own Claude Code session with one job, and none can see the others' conversation. The builder can't quietly change the plan. The reviewer can't grade its own homework. You describe what you want once, and the work moves itself from role to role.

How it works

you → chief → researcher → planner → principal → implementer → reviewer → PASS → you
                                                      ↑            │
                                                      └─ changes ──┘

| Role | Its job | |---|---| | chief | Reads your request and sends it to the right place. Start here. | | researcher | Finds out how things work today. | | analyst | Digs into anything murky, or something that already went wrong once. | | planner | Decides what to build. | | principal | Decides how to build it. | | implementer | Writes the code and tests. | | reviewer | Checks it. Says PASS or sends it back. | | conductor | Takes a big goal, turns it into a list, and works through it. |

Small fixes skip straight to the implementer. Real features go through the whole line. Only the implementer (and analyst, for tests and experiments) can change code; everyone else is read-only.

When does analyst step in?

Analyst is the most expensive role, so it only gets work that has already proven hard:

  • Something that has been tried before and came back wrong.
  • A problem that's murky or disputed, where nobody is sure what's actually true.
  • A run the reviewer has rejected twice (on bug fixes, or where a design already existed).
  • Any item stuck bouncing between roles without landing.

It never gets used just because chief isn't sure. A first-time bug with a clear repro goes straight to the implementer.

Install

Needs macOS (Apple Silicon) or Windows, and Claude Code installed and logged in.

npm i -g @ayorcodes/claudespace

Open a new terminal if claudespace isn't found.

Use it

cd ~/your-project
claudespace

Type what you want into chief, in plain words:

add rate limiting to the /api/upload endpoint

That's it. Panes open as work reaches them, and the reviewer reports back when it's done. Running claudespace again in the same folder reattaches.

For a bigger goal, say so. Chief hands it to conductor, which writes a backlog and pauses so you can edit it. Say go and it runs the list unattended.

Tips

  • Always start in chief, even for tiny changes. Picking the right role is its job.
  • For a big log or diff, save it to a file and paste the path, not the text.
  • A permission prompt has to be answered in the pane that shows it.

Models and cost

Each role runs at a tier that decides which model it gets and how hard it thinks:

| Tier | Used by (default) | Claude model | |---|---|---| | max | analyst | Opus, high effort | | deep | conductor | Opus, medium effort | | standard | chief, planner, principal, implementer, reviewer | Sonnet, medium effort (reviewer: high) | | light | researcher | Sonnet, low effort |

claudespace --list-templates shows exactly what each role runs today.

Saver mode

claudespace --saver

With the defaults, every role always runs at its own tier. With --saver, each handoff can choose the model for the next step based on how hard that step is. An easy follow-up drops to a cheaper model, and a hard one moves up. Role panes also skip loading your MCP servers, because their tool lists add tokens to every turn. Analyst's tier is never lowered.

Setting your own models

To change one role's tier:

claudespace config set roles.reviewer deep

For finer control, edit ~/.config/claudespace/templates.toml. It's created on first run, and claudespace update leaves it alone.

# Give a role a different tier on every agent
[roles]
planner = "deep"

# Define your own tier for Claude and assign it to a role
[agents.claude.tiers]
heavy = "--model claude-opus-5-5 --effort high"

[agents.claude.roles]
reviewer = "heavy"

Or create a named template that pins exact commands, then run it with claudespace --template max:

[templates.max]
layout     = "default_main_left_grid_right"
entry_role = "chief"
roles      = ["chief", "conductor", "researcher", "analyst", "planner", "principal", "implementer", "reviewer"]

[templates.max.commands]
principal = "claude --model claude-opus-5-5 --effort high"

Every run also has a spending cap (default $20). When it's reached, the run pauses and asks you whether to raise the cap, deliver what's done, or cancel.

What it runs on

Agents

| Agent | Support | |---|---| | Claude Code | Full. Built and tested for it. | | Codex | Works, but experimental. Expect rough edges. | | Cursor Agent | Works, but experimental. Expect rough edges. |

Claude is the default. Pick another with claudespace --agent codex (or cursor).

Terminals

| Terminal | Platform | How to use it | |---|---|---| | cmux | macOS | Default. Installs itself on first run. | | Ghostty (via tmux) | macOS | claudespace --ghostty | | herdr | macOS | claudespace --herdr (opt-in) | | Hub (one terminal) | macOS | claudespace --hub. Chief runs in your terminal and the other roles run as Claude Code background sessions. Claude only. | | psmux | Windows | Default on Windows. Set up by the npm install. |

Linux isn't supported.

Handy commands

claudespace status     # what's working, what's stuck, what needs you
claudespace init       # teach it your project's test, lint and build commands
claudespace --hub      # everything in one terminal instead of split panes
claudespace --manual   # you press Enter on every handoff
claudespace close      # stop every role for this folder
claudespace doctor     # something broken? run this first
claudespace update     # update to the latest version

Uninstall

claudespace uninstall && npm rm -g @ayorcodes/claudespace

Run uninstall first. It removes the hook claudespace added to Claude Code.

More

Every flag, mode and setting: docs/reference.md.

License

Proprietary. See LICENSE.