Internal demo
Muster + OCSites
Every local WordPress site, in one terminal: find it, open it, run agents in it, and deploy it. OCSites runs the WordPress operations; Muster is the terminal interface you run them from.
What each one does
Two programs, one workflow
ocsites, sites
OCSites
Find, open, clone, and deploy local WordPress sites - all from the terminal.
muster
Muster
Your OCSites sites as a sidebar. Open each as terminal panes, run AI agents, and deploy from there.
How they connect
Muster drives OCSites
Muster
sidebar, panes, agents
>
OCSites
sites, deploy, import
>
Your sites
MAMP and LocalWP
- Muster asks OCSites for your sites and lists them in the sidebar.
- Deploy and Import run through OCSites in a side pane, with confirmation and live progress.
- AI agents can drive the same actions and share the same settings, through the MCP server.
Before you start
Prerequisites
| macOS / Linux | supported platforms |
| git | clone and version checks (git --version) |
| SSH to Bitbucket | cloning the repos and your sites (ssh -T git@bitbucket.org) |
| Atlassian API token | OCSites authenticates to Bitbucket (set up during onboarding) |
| Python 3.10+ | OCSites runtime (auto-installed if missing) |
One install
Install Muster (it installs OCSites too)
$ git clone --depth 1 git@bitbucket.org:efront_au/muster.git /tmp/muster-installer \
&& /tmp/muster-installer/install.sh \
&& rm -rf /tmp/muster-installer
- Installs the prebuilt muster binary for your CPU (no compiler, no build) to
~/.local/bin
- If ocsites is missing, it bootstraps pipx and installs OCSites, then nudges you to configure it
- Re-run to update. install.sh --check reports if a newer version exists.
First run
The onboarding walkthrough
First launch of the picker runs a one-minute setup. Re-run any time with ocsites --onboarding.
- Welcome - Enter to begin
- Projects folder - where your sites live (default ~/Documents/Sites)
- Bitbucket login - Atlassian email + API token (set up next), tested live
- Theme - arrow keys preview live
- Local web tool - MAMP or LocalWP
- Done - recap of all four settings
Bitbucket access
A scoped Atlassian API token
OCSites signs in to Bitbucket with a scoped Atlassian API token. Not your account password, and separate from the SSH key used to clone.
- Create at id.atlassian.com/manage-profile/security/api-tokens
- Choose Create API token with scopes, set the app to Bitbucket, name it, set an expiry (for example 1 year)
- Sign in with your Atlassian account email, not your Bitbucket nickname
read:account
read:repository:bitbucket
read:project:bitbucket
read:workspace:bitbucket
Confirm it works
Launch and verify
$ ocsites --version # 1.6.x
$ sites # picker opens, lists your sites
$ muster # sidebar fills with your OCSites sites
$ muster --session demo # isolated session for the demo
- Click the search box at the top of the Sites sidebar, type to filter, then click a site (or Enter) to open it.
- Sidebar empty but
sites works? Check which ocsites or set [ocsites] bin.
Live demo, part 1
Open a site, run an agent
- Open Muster. The whole sidebar is your OCSites sites: status dot, name, branch. None of it was configured in Muster.
- Search and open a site. Click the search box, type a few letters, then click the site (or Enter) - it opens as a workspace of real panes. LocalWP sites open at app/public.
- Run an AI agent in a pane (Claude, Codex, pi, Whale, Reasonix) and watch the state badge.
✓ idle, at the prompt
working, in progress
blocked, needs your input
Live demo, part 2
Deploy, git, detach
- Right-click a site, then Deploy (or Import). The OCSites TUI opens in a side pane with a confirm screen and live logs.
c cancels; e jumps to the first error.
- Git panel. Open the menu, choose "git timeline": commit graph, branches, fetch/pull. If lazygit is installed, the panel uses lazygit.
- Detach and reattach. Close the terminal, reopen, run
muster, and panes and agents are where you left them. A background server keeps them running.
- Standalone OCSites. Run
sites, choose + Add New Site, clone a new site from Bitbucket with a live progress bar.
OCSites
OCSites features and tips
- Fuzzy picker. Type to filter. * to favourite (favourites float to top). ? for the cheat sheet anywhere.
- Environments by branch.
git checkout staging then deploy targets staging automatically; it refuses to guess production.
- Import pulls server DB and files down. Deploy builds the theme (pinned Node via nvm), pushes up, then runs
wp search-replace across domains.
- MCP server. Let an AI agent run imports and deployments, and pull information from the server - WP-CLI, server files, git and run history - over the same flows as the TUI.
- MAMP and LocalWP both supported; one-step migrate a plain site into LocalWP.
Muster
Muster features and tips
- Recency and search. Sites sort by last-opened; the sidebar is searchable with no command.
- Right-click menu. Deploy, Import, Open local, Open live, Open in OCSites.
- Agent-state detection. Claude, Codex, Gemini, pi, Cursor, Droid, Whale, Reasonix: idle, working, blocked.
- Node auto-switch. Open a site pane and the shell switches to the Node version from
engines.node automatically (via OCSites' shell hook) - no manual nvm use.
- Single-instance side pane. One deploy/import screen at a time; re-triggering focuses it.
- Menu footer. Click it for settings, theme, keybinds, reload, and detach.
- Optional hotkeys.
[keys] ocsites_deploy / ocsites_import deploy or import the active site in one chord.
Agent state detection
See which agents need your input
Muster reads each pane's live screen and classifies the agent's state. Run several agents across several sites, and the sidebar shows which ones are waiting on a prompt.
✓ idle, at the prompt
working, in progress
blocked, needs your input
From Central
Open in OCSites
Every site in Central has an "Open in OCSites" button. It copies the site's deploy config straight into your local OCSites app - no manual setup.
- Pick the environment - production or staging, matched to your git branch.
- Optionally override Build command and Deploy path - <theme> is a shortcode for the active theme.
- Open in OCSites - the ocsites:// link copies it into your local app, binds the folder, and derives the .local domain.
- You land on the actions menu - ready to import or deploy. First time? The Install tab sets OCSites up.
Claude Code
Add the OCSites MCP (optional)
Give Claude Code the OCSites tools in every project: list sites, run imports and deploys, WP-CLI, and server checks.
# user scope = available in every Claude Code project
$ claude mcp add --transport stdio --scope user ocsites \
-- ocsites-mcp --stdio
$ claude mcp list # ocsites: connected
- Claude Code launches
ocsites-mcp on demand - nothing to keep running, no daemon, no port.
- User scope lives in
~/.claude.json, so it loads in every project.
Claude Code
Add the ActiveCollab MCP (optional)
Give Claude Code the ActiveCollab tools in every project: tasks, projects, comments, time tracking, and attachments.
# install (if not already)
$ TMP=$(mktemp -d) && \
git clone --depth 1 git@bitbucket.org:efront_au/active-collab-mcp.git "$TMP/repo" && \
"$TMP/repo/install.sh" --yes; rm -rf "$TMP"
# authenticate once
$ activecollab-mcp auth login
# add to Claude Code (user scope = every project)
$ claude mcp add --transport stdio --scope user activecollab \
-- activecollab-mcp --stdio
$ claude mcp list # activecollab: connected
Reference
Cheat-sheet
# OCSites
$ sites # open the picker
$ ocsites --onboarding # run the setup walkthrough
$ ocsites add apikey <email> <token> # Atlassian email + scoped API token
$ ocsites set [path] # sites folder
$ ocsites update # upgrade
# Muster
$ muster # launch / attach default session
$ muster --session <name> # isolated session
# click the Sites sidebar to search and open a site
# right-click a site for Deploy, Import, Open local, Open live
install-guide.md — full presenter companion
Arrow keys or Space to move. F for fullscreen.