You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-43Lines changed: 23 additions & 43 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,49 +81,29 @@ goreleaser check
81
81
goreleaser release --snapshot --clean
82
82
```
83
83
84
-
## Implementation Plan
85
-
The current fish scripts (`sprite_up`/`sprite_destroy`) define the baseline behavior. The plan below maps that flow into a robust, cross-platform CLI built with Bubble Tea.
86
-
87
-
### Phase 1: CLI foundations
88
-
- Initialize a Go CLI with a single `seven` binary.
89
-
- Implement commands:
90
-
-`seven up` (create or reuse a sprite, open console)
91
-
-`seven destroy` (delete sprite, remove local marker file)
92
-
-`seven status` (show sprite existence + health)
93
-
- Add a config/marker file (`.sprite`) to pin the sprite name for the repo.
94
-
95
-
### Phase 2: Sprite lifecycle logic
96
-
- Name resolution:
97
-
- Default to `basename(pwd)` unless `.sprite` overrides it.
98
-
- Validate names and provide helpful errors.
99
-
- Create/reuse logic:
100
-
- If sprite exists, reuse and open console.
101
-
- If not, create with `sprite create --skip-console`.
102
-
- Destroy logic:
103
-
- Remove local `.sprite` file.
104
-
- Destroy sprite if it exists.
105
-
106
-
### Phase 3: Repo bootstrap
107
-
- Detect git repo and `origin` remote.
108
-
- If GitHub remote:
109
-
- Use `gh auth token` if available for faster clone.
110
-
-`gh repo clone <owner/repo> <sprite-name>`.
111
-
- Else fallback to `git clone <repo-url> <sprite-name>`.
112
-
113
-
### Phase 4: TUI experience (Bubble Tea)
114
-
- Add a guided flow for `seven up`:
115
-
- status spinner, name confirm/override, progress logs.
116
-
- Provide success/failure summary with next actions.
117
-
- Make it easy to cancel safely (Ctrl+C).
118
-
119
-
### Phase 5: polish + docs
120
-
- Structured logging and clear error messages.
121
-
- Extend README with examples, troubleshooting, and FAQ.
122
-
- Add tests for name resolution, `.sprite` handling, and command invocation.
123
-
- Document installation:
124
-
-**Primary:** prebuilt binaries per OS/arch (GitHub Releases).
125
-
-**Convenience:** package managers (Homebrew/Scoop/Winget) as optional wrappers.
126
-
-**POC focus:** a simple curl-based installer that fetches the correct release asset.
Goal: open the sprite workspace in your local IDE without losing native tooling.
93
+
94
+
Planned approach:
95
+
-**Session-first UX:**`seven up` opens a shell via `sprite console`, while `seven exec` (and the CLI’s `sprite exec`) can run commands in the sprite with full TTY support. citeturn1view0
96
+
-**IDE adapters:** add a `seven ide` flow that can:
97
+
- detect an SSH-capable endpoint if Sprites exposes one,
98
+
- or fall back to syncing + remote commands (git-based or file sync) when SSH isn’t available.
99
+
100
+
### 2) Feedback loop + port forwarding
101
+
Goal: run the app inside the sprite and access it locally as if it were running on your machine.
102
+
103
+
Planned approach:
104
+
-**Forwarding:** use `sprite proxy` to forward local ports to the sprite. citeturn1view1
105
+
-**Auto-discovery:** detect ports by heuristics (common dev ports, package scripts, Docker compose, `.env`, or a user-specified list).
106
+
-**Command surface:** add `seven forward` (and/or `seven dev`) to start the app in the sprite and wire up ports in one step.
0 commit comments