Skip to content
Development
Command

/board

Open the great_cto admin board at http://localhost:3141 (Kanban, cost, pipeline, inbox, memory). Starts it in background if not running.

From plugin
great-cto
11321 skills72 agents21 commands1 hook
> /plugin marketplace add avelikiy/great_cto
> /plugin install great_cto@great-cto

Command definition

board.md
description: "Open the great_cto admin board at http://localhost:3141 (Kanban, cost, pipeline, inbox, memory). Starts it in background if not running."
argument-hint: "[--port N] [--no-open] [--restart]"
user-invocable: true
allowed-tools: Read, Bash, Glob
model: haiku

You are the `/board` command. Ensure the admin board is running on localhost and open it in the user's default browser. Output a short status line — under 8 lines, no preamble.

Step 1 — Parse args

PORT=3141
NO_OPEN=false
RESTART=false
for arg in "$@"; do
  case "$arg" in
    --port=*) PORT="${arg#*=}" ;;
    --port) shift; PORT="$1" ;;
    --no-open) NO_OPEN=true ;;
    --restart) RESTART=true ;;
  esac
done
echo "ARGS port=$PORT no_open=$NO_OPEN restart=$RESTART"

Step 2 — Check if board is already up

HTTP_CODE=$(curl -sf -o /dev/null -w '%{http_code}' "http://127.0.0.1:$PORT/api/projects" 2>/dev/null || echo 000)
if [ "$HTTP_CODE" = "200" ] && [ "$RESTART" = "false" ]; then
  echo "ALREADY_RUNNING port=$PORT"
  # If --no-open not set, open browser
  if [ "$NO_OPEN" = "false" ]; then
    open "http://localhost:$PORT/" 2>/dev/null || \
      xdg-open "http://localhost:$PORT/" 2>/dev/null || true
  fi
  exit 0
fi

If `ALREADY_RUNNING` was printed, stop here and report: > ✓ Board already running at http://localhost:$PORT/

Step 3 — Kill stale processes if --restart

if [ "$RESTART" = "true" ]; then
  pkill -9 -f "great_cto.*board.*--port $PORT" 2>/dev/null
  pkill -9 -f "great-cto board" 2>/dev/null
  # Free the port if something else holds it
  PID_ON_PORT=$(lsof -ti :$PORT 2>/dev/null | head -1)
  [ -n "$PID_ON_PORT" ] && kill -9 "$PID_ON_PORT" 2>/dev/null
  sleep 1
  echo "RESTARTED"
fi

Step 4 — Start board in background

# Find the great-cto binary — prefer the plugin's own CLI when it is BUILT,
# fall back to PATH. A marketplace install is a git clone without the build
# (dist/ is gitignored), so index.mjs being there proves nothing.
PLUGIN_DIR=${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/*/great_cto/*/ 2>/dev/null | awk -F'/plugins/cache/' '{split($NF,p,"/"); print p[3], $0}' | sort -V | tail -1 | cut -d' ' -f2- | sed 's|/$||')}
if [ -f "$PLUGIN_DIR/packages/cli/dist/main.js" ]; then
  CLI="node $PLUGIN_DIR/packages/cli/index.mjs"
elif command -v great-cto >/dev/null 2>&1; then
  CLI="great-cto"
else
  echo "ERROR: the plugin copy has no built CLI and great-cto is not in PATH."
  echo "Install: npm install -g great-cto"
  exit 1
fi

# Detach board so it survives this command's process exit
LOG_DIR="$HOME/.great_cto"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/board.log"

OPEN_FLAG=""
[ "$NO_OPEN" = "true" ] && OPEN_FLAG="--no-open"

nohup $CLI board --port "$PORT" $OPEN_FLAG > "$LOG_FILE" 2>&1 &
BOARD_PID=$!

# Detach so board outlives this shell
disown $BOARD_PID 2>/dev/null || true

echo "STARTED pid=$BOARD_PID port=$PORT log=$LOG_FILE"

Step 5 — Wait for health + open browser

# Poll for up to 5 seconds
for i in 1 2 3 4 5 6 7 8 9 10; do
  HTTP_CODE=$(curl -sf -o /dev/null -w '%{http_code}' "http://127.0.0.1:$PORT/api/projects" 2>/dev/null || echo 000)
  [ "$HTTP_CODE" = "200" ] && break
  sleep 0.5
done

if [ "$HTTP_CODE" = "200" ]; then
  if [ "$NO_OPEN" = "false" ]; then
    open "http://localhost:$PORT/" 2>/dev/null || \
      xdg-open "http://localhost:$PORT/" 2>/dev/null || true
  fi
  echo "READY url=http://localhost:$PORT/"
else
  echo "FAILED — board did not respond after 5s. Check $LOG_FILE."
  tail -10 "$LOG_FILE" 2>/dev/null
  exit 1
fi

Step 6 — Render to user

Render exactly this format (no extra prose):

✓ Board ready · http://localhost:<port>/
  log:  ~/.great_cto/board.log
  pid:  <pid>
  to stop: kill <pid>  (or restart: /board --restart)

If `ALREADY_RUNNING` and not `--restart`:

✓ Board already running · http://localhost:<port>/
  (use /board --restart to kill + relaunch)

If `FAILED`:

✗ Board failed to start on port <port>.
  log tail:
  <last 5 lines of LOG_FILE>

  Try: /board --restart
  Or:  /board --port 3142  (different port)

Notes

  • The board is a long-running daemon — running it via `nohup ... &` plus

`disown` keeps it alive after this command exits.

  • The board reads `~/.great_cto/projects.json` for project registry, so

it serves the full multi-project view automatically.

  • Cost data comes from `~/.great_cto/verdicts/` (verdict logs) and

`docs/plans/` in each registered project.

  • Closing the browser tab does NOT stop the board — use `kill <pid>` or

`pkill -f "great-cto board"` to actually stop.

Read more
@avelikiy
Ships withgreat-cto

You already have the agent. This is everything around it. great_cto runs Claude Code as a pipeline of 70 specialist agents — an independent model checks each stage before the next builds on it, spending caps refuse rather than warn, and three decisions stay yours: what gets built, how, and whether it ships.

11333 skills72 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
113
Star history of avelikiy/great_cto on GitHub, a chart by star-history.com

Other commands on great-cto.

agent

agent

Command

Manage an agent like an employee — review its record, generate its evals, evolve its prompt against held-out evals, or retire it.

@avelikiy@avelikiyInstall Command
audit

audit

Command

Have an existing codebase? Run it — you get the detected stack, a gap list with severity and file:line evidence, a task per gap,…

@avelikiy@avelikiyInstall Command
crystallize

crystallize

Command

After a session or an incident, turn what happened into reusable knowledge — `learn` captures this session's lessons,…

@avelikiy@avelikiyInstall Command
digest

digest

Command

Friday review — what shipped, what broke, what it cost; add `cost`, `slo`, `gov` or `sessions` for the detail. Weekly engineering…

@avelikiy@avelikiyInstall Command
doctor

doctor

Command

Something off with great_cto, or just upgraded it? Run it — you get a health report (pipeline state, missing artefacts, hooks,…

@avelikiy@avelikiyInstall Command
exception

exception

Command

Signed gate-exception registry — replace ad-hoc --admin / --no-verify bypasses with an auditable, signed, expiring record (who ·…

@avelikiy@avelikiyInstall Command

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command