Skip to content

feat: add uninstall script#323

Open
jithinraj wants to merge 1 commit intogarrytan:mainfrom
jithinraj:feat/uninstall-script
Open

feat: add uninstall script#323
jithinraj wants to merge 1 commit intogarrytan:mainfrom
jithinraj:feat/uninstall-script

Conversation

@jithinraj
Copy link

Summary

Adds bin/gstack-uninstall to cleanly remove gstack from a system. Closes #273.

What it does

  • Stops running browse daemons (SIGTERM with 2s graceful window, SIGKILL fallback)
  • Removes Claude skills (~/.claude/skills/gstack + per-skill symlinks created by setup)
  • Removes Codex skills (~/.codex/skills/gstack*)
  • Removes per-project .agents/skills/gstack* sidecar and .gstack/ state
  • Removes global ~/.gstack/ state directory (config, analytics, sessions, projects)
  • Cleans up /tmp/gstack-* session files

Flags

Flag Behavior
(none) Interactive: shows what will be removed, prompts for confirmation
--force Remove everything without prompting
--keep-state Remove skills but preserve ~/.gstack/ data (config, analytics, projects)
-h / --help Print usage docs

What is NOT removed

  • ~/Library/Caches/ms-playwright/ (shared Chromium, may be used by other tools)
  • ~/.gstack-dev/ (developer eval artifacts, only present for gstack contributors)

Conventions

Follows existing bin/ script patterns: #!/usr/bin/env bash, set -euo pipefail, GSTACK_STATE_DIR env override for testing, # ─── Section ── box-drawing headers, terse output.

Test plan

  • bin/gstack-uninstall --help prints usage
  • bin/gstack-uninstall (interactive) lists targets and prompts before removing
  • bin/gstack-uninstall --force removes all gstack artifacts
  • bin/gstack-uninstall --keep-state --force removes skills but preserves ~/.gstack/
  • Re-running after uninstall prints "Nothing to remove"
  • bash -n bin/gstack-uninstall passes syntax check

@jithinraj jithinraj force-pushed the feat/uninstall-script branch 3 times, most recently from dc5fa46 to 7094f21 Compare March 22, 2026 17:49
Closes garrytan#273.

Adds bin/gstack-uninstall to cleanly remove gstack from a system:
- Stops running browse daemons (SIGTERM with graceful fallback)
- Removes Claude skills (~/.claude/skills/gstack + per-skill symlinks)
- Removes Codex skills (~/.codex/skills/gstack*)
- Removes per-project .agents/ sidecar and .gstack/ state
- Removes global ~/.gstack/ state directory
- Cleans up /tmp session files

Supports --force (skip confirmation), --keep-state (preserve
~/.gstack/ data), and GSTACK_STATE_DIR env override for testing.

Uses set -uo pipefail (no -e) so uninstall never aborts partway.
Handles broken symlinks. Follows existing bin/ script conventions.
@jithinraj jithinraj force-pushed the feat/uninstall-script branch from 7094f21 to 899320e Compare March 23, 2026 17:54
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.

No uninstall script.

1 participant