Skip to content

v0.1.1 — multiple agents & accounts, peek, sharper init/check/doctor - #8

Merged
tuanngo merged 25 commits into
mainfrom
feat/minimal-workspace
Jun 28, 2026
Merged

tuanngo merged 25 commits into
mainfrom
feat/minimal-workspace

Conversation

@tuanngo

@tuanngo tuanngo commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

v0.1.1 — run multiple agents & accounts, peek, sharper onboarding

Builds on v0.1.0. Three themes:

Run multiple agents & accounts

  • Named instances — sloop run claude@review / -n/--name runs a second agent of the same tool in one repo (session <repo>__tool__instance). -N/--new auto-names the next free slot (claude·2, claude·3…). Default sloop run claude still re-attaches, unchanged.
  • Profiles — sloop profile add|ls|rm saves a tool + env in global ~/.sloop/config.yaml; launch it as sloop run @<name> (e.g. a different account via CLAUDE_CONFIG_DIR). --env KEY=VAL injects env one-off without a profile (~/$VAR expanded).
  • The fleet view (ps, picker, status line) shows instances as tool·instance.

Peek — overlay a waiting agent

  • sloop peek floats a waiting agent's live pane over your current screen so you can answer it and drop back without switch-client swapping your whole screen; sloop peek setup binds a key. Needs tmux ≥ 3.2.
  • Every status bar gains a fleet-wide ⏳ N waiting badge.

Sharper onboarding (init / check / doctor)

  • sloop init is provider-respecting: asks about the tools you actually use (Claude-first), prompts honestly and skips already-done work, selects tools per workspace, and no longer offers to scaffold a provider's folders.
  • sloop check gains more readiness criteria, sourced from each tool's adapter manifest.
  • sloop doctor groups + colors output and explains the mode line.

Notes

  • New design docs: docs/design/profiles.md, docs/design/peek.md. Docs updated: README command menu, docs/guide/USAGE.md, docs/reference/CONFIG.md, CHANGELOG.md.
  • Backward compatible: two-segment ws__tool names and no-flag sloop run behave exactly as before; the session-name parser is tool-aware so older sessions keep parsing correctly.
  • All new logic is covered by pure unit tests; go build ./... && go vet ./... && go test ./... pass.

After merge: tag v0.1.1 on main to trigger the GoReleaser release + Homebrew formula update.

tuanngo added 25 commits June 28, 2026 17:28
Deepen the readiness checklist via data, not Go: a `readiness:` block in each
adapter manifest declares extra best-practice checks (file-exists / dir-exists /
git-tracked) cited to the provider's own docs, so criteria are attributable, not
sloop's opinion. Optional checks render as advisory info (•) so power-user
features don't nag a basic setup.

Also adds a workspace-level "AGENTS.md committed to git" check (a best practice
every provider echoes), a "learn more" line citing each provider's source, and
seeds claude.yaml with the .claude/agents check from Claude Code's best-practices
page. Documents the new field in ADAPTERS.md.
`sloop init` no longer enables every AI CLI on the machine. It enables your
primary tool by default; `--tools claude,cursor` or the interactive prompt add
more per workspace. Downstream (sync/check/hooks) read that list, so a Claude-only
folder isn't littered with GEMINI.md or .cursor.

Add needsCanonical: sloop's portable-context layer (AGENTS.md + pointer files) is
only set up when there's something to be portable across — two or more tools, or
a native-mode tool. A lone pointer-mode tool keeps its own context file (e.g.
CLAUDE.md from `claude` /init); sloop stays out of the way and manages the fleet
and skills. init/sync/check all honor this.

check now respects a context file the tool already owns (treated as ready, not a
"repair" nag) and only asks for AGENTS.md in a canonical workspace. Tests updated
to cover both the minimal single-tool and canonical multi-tool shapes.
Two init UX fixes from real-world testing:

- Tool selection now asks about EVERY detected tool, including the primary —
  it isn't always Claude. The primary is defaulted on (a bare Enter keeps the
  simple case), but you can decline it; if nothing is picked, the primary is
  enabled as a fallback.
- Only prompt for work that isn't already done: skip "Pre-fill AGENTS.md" when
  AGENTS.md exists, "Create standard folders" when they already exist, and
  "Install status hooks" when they're already installed (scaffoldNeeded /
  hooksNeeded gates).
- Fix a latent bug where init opened two bufio readers on stdin (racing over
  buffered input); the whole interactive flow now shares one reader.
Three init polish fixes from testing:

- The scaffold prompt now lists exactly the folders it will create, e.g.
  "Create standard folders (.claude/agents, .cursor/rules)?" — and only the
  missing ones, via missingScaffold.
- init no longer claims to have scaffolded a folder that already existed: the
  scaffold loop skips dirs that are present, so the summary lists only what it
  actually created.
- Ask about the primary tool first (primaryFirst), so Claude (or whatever the
  default is) leads the per-tool prompts instead of alphabetical order.
Tools create their own standard folders (and sloop already creates the skills
dir it needs via the symlink), so scaffolding empty .claude/agents / .cursor/rules
with a .gitkeep is unnecessary intervention. Drop the interactive scaffold prompt;
`--scaffold` stays as an explicit opt-in for anyone who wants the layout.
Match the check command's readability: green ✓ / grey ✗ marks, and three clear
groups — AI provider CLIs, Multiplexer (powers ps/run/attach), and Mode. A
missing CLI is grey, not red, since the tools are optional. The Mode line now
explains itself ("ask — asks before actions" / "auto — runs without prompts").
@tuanngo
tuanngo merged commit 1205060 into main Jun 28, 2026
5 checks passed
@tuanngo
tuanngo deleted the feat/minimal-workspace branch June 28, 2026 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant