Repository navigation
feat: rewrite spawnpoint in Go, ship as a single binary - #9
Merged
Merged
Conversation
…ew video
- New README hero ("One branch. Every repo. Ready to code."), Why section,
and a "Built for coding agents" section near the top
- 46s motion-graphics overview video (mp4 + gif) and new social preview,
built with Remotion in video/
- PyPI description/keywords updated; video assets excluded from sdist
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A single static binary built on cobra + fang (styled help, errors, completions, man pages), huh prompts, lipgloss output and a bubbletea fuzzy repo picker. Config, templates, workspace layout and the --no-input/--json contract are unchanged. - ~20ms startup (vs ~90ms), parallel fetch, `list` ~2x faster - human output always on stderr, so --json stdout is valid JSON (the Python release mixed progress bars into it for create/add/cleanup) - `sp update` upgrades via brew/pipx/uv/pip/go install when that's how it was installed, and self-updates curl installs with checksum checks - releases via GoReleaser: GitHub binaries, Homebrew cask, install.sh, and PyPI wheels carrying the binary so `pipx upgrade` moves existing Python users over - e2e suite against real git repos pins the agent-facing JSON contract Fixes carried over from the Python version: new branches created by `add` no longer track the base branch, single-repo workspaces are keyed by repo name (so `add` doesn't re-offer that repo), and scan_depth honours values above 2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The Go binary replaces it. Existing pipx/pip users are moved over by their next `sp update` / `pipx upgrade` (PyPI now ships the binary as platform wheels). README covers the new install options, how `sp update` works per install method, and what changes for 0.11 users. Fixes the action/status values in the agent skill's JSON reference. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ffects The demo now replays the Go 'sp create' flow (fuzzy picker, huh prompts, spinner), a new scene covers install and 'sp update', and the outro points at Homebrew. Music and SFX are synthesized by video/scripts/make_audio.py and cued per scene in src/audio.tsx. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Keep the problem, the sp create demo, agents, and install. Drop the workspace tree, feature grid and update scenes; the outro now carries the install line and the single-binary/startup/update points. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rewrites Spawnpoint in Go so it ships as one native binary instead of needing Python and pipx, and reworks the README messaging and overview video.
--jsonand--no-inputoutput match the Python version, which I checked against real workspaces.sp liston 40 workspaces / 133 worktrees takes 446 ms, down from 913 ms, because the scan now runs in parallel.curl … | sh(with checksum verification),go install, and PyPI binary wheels, sopipx install/uv tool installkeep working.sp update: detects how it was installed and runs the matching upgrade (brew, pipx, uv, pip or go). Otherwise it replaces its own binary in place after checking the checksum. It also prints a background notice when a new release is out, which is skipped in--json/--no-inputmode.pipx upgrade spawnpointor the oldsp updateand they get the Go binary. I verified this end to end with locally built wheels.--jsonstdout;addnow uses--no-track;scan_depthis no longer capped at 2.publish.ymlso PyPI trusted publishing keeps working. CI runs the unit tests and the e2e suite.sp createflow;video/scripts/make_audio.py, so there are no licensing issues.src/,tests/,pyproject.toml,uv.lock) is removed.Before releasing
mihirgupta0900/homebrew-taprepo.HOMEBREW_TAP_DEPLOY_KEYsecret on this repo.assets/spawnpoint.mp4as a GitHub attachment so the README can play it inline with sound. The GIF is silent.Test plan
go vet ./...andgo test ./...pass, including the e2e suite covering repos, create, add, list/cd, restructure, templates, file compatibility, cleanup, light-cleanup and headless first run.sp update→ Go, pipx upgrade, uv tool, pip venv, install.sh, self-update 0.9.0 → 1.0.0, and the install.sh pipx guard.🤖 Generated with Claude Code