container-superposition 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +72 -1370
  2. package/dist/scripts/init.js +333 -185
  3. package/dist/scripts/init.js.map +1 -1
  4. package/dist/tool/commands/adopt.d.ts +62 -0
  5. package/dist/tool/commands/adopt.d.ts.map +1 -0
  6. package/dist/tool/commands/adopt.js +767 -0
  7. package/dist/tool/commands/adopt.js.map +1 -0
  8. package/dist/tool/commands/hash.d.ts +36 -0
  9. package/dist/tool/commands/hash.d.ts.map +1 -0
  10. package/dist/tool/commands/hash.js +242 -0
  11. package/dist/tool/commands/hash.js.map +1 -0
  12. package/dist/tool/commands/plan.d.ts +2 -0
  13. package/dist/tool/commands/plan.d.ts.map +1 -1
  14. package/dist/tool/commands/plan.js +262 -42
  15. package/dist/tool/commands/plan.js.map +1 -1
  16. package/dist/tool/schema/project-config.d.ts +15 -0
  17. package/dist/tool/schema/project-config.d.ts.map +1 -0
  18. package/dist/tool/schema/project-config.js +359 -0
  19. package/dist/tool/schema/project-config.js.map +1 -0
  20. package/dist/tool/schema/types.d.ts +39 -1
  21. package/dist/tool/schema/types.d.ts.map +1 -1
  22. package/dist/tool/utils/backup.d.ts +23 -0
  23. package/dist/tool/utils/backup.d.ts.map +1 -0
  24. package/dist/tool/utils/backup.js +123 -0
  25. package/dist/tool/utils/backup.js.map +1 -0
  26. package/docs/README.md +12 -2
  27. package/docs/adopt.md +196 -0
  28. package/docs/custom-patches.md +1 -1
  29. package/docs/discovery-commands.md +55 -3
  30. package/docs/examples.md +40 -6
  31. package/docs/filesystem-contract.md +58 -0
  32. package/docs/hash.md +183 -0
  33. package/docs/minimal-and-editor.md +1 -1
  34. package/docs/overlays.md +60 -0
  35. package/docs/presets-architecture.md +1 -1
  36. package/docs/presets.md +1 -1
  37. package/docs/publishing.md +36 -23
  38. package/docs/security.md +43 -0
  39. package/docs/specs/001-verbose-plan-graph/checklists/requirements.md +36 -0
  40. package/docs/specs/001-verbose-plan-graph/contracts/plan-verbose-output.md +96 -0
  41. package/docs/specs/001-verbose-plan-graph/data-model.md +111 -0
  42. package/docs/specs/001-verbose-plan-graph/plan.md +127 -0
  43. package/docs/specs/001-verbose-plan-graph/quickstart.md +106 -0
  44. package/docs/specs/001-verbose-plan-graph/research.md +100 -0
  45. package/docs/specs/001-verbose-plan-graph/spec.md +128 -0
  46. package/docs/specs/001-verbose-plan-graph/tasks.md +223 -0
  47. package/docs/specs/002-superposition-config-file/checklists/requirements.md +36 -0
  48. package/docs/specs/002-superposition-config-file/contracts/init-project-config.md +98 -0
  49. package/docs/specs/002-superposition-config-file/data-model.md +126 -0
  50. package/docs/specs/002-superposition-config-file/plan.md +208 -0
  51. package/docs/specs/002-superposition-config-file/quickstart.md +140 -0
  52. package/docs/specs/002-superposition-config-file/research.md +144 -0
  53. package/docs/specs/002-superposition-config-file/spec.md +130 -0
  54. package/docs/specs/002-superposition-config-file/tasks.md +213 -0
  55. package/docs/team-workflow.md +27 -1
  56. package/docs/workflows.md +136 -0
  57. package/overlays/.presets/sdd.yml +84 -0
  58. package/overlays/README.md +7 -1
  59. package/overlays/amp/README.md +70 -0
  60. package/overlays/amp/devcontainer.patch.json +3 -0
  61. package/overlays/amp/overlay.yml +15 -0
  62. package/overlays/amp/setup.sh +21 -0
  63. package/overlays/amp/verify.sh +21 -0
  64. package/overlays/claude-code/README.md +83 -0
  65. package/overlays/claude-code/devcontainer.patch.json +3 -0
  66. package/overlays/claude-code/overlay.yml +15 -0
  67. package/overlays/claude-code/setup.sh +21 -0
  68. package/overlays/claude-code/verify.sh +21 -0
  69. package/overlays/gemini-cli/README.md +77 -0
  70. package/overlays/gemini-cli/devcontainer.patch.json +3 -0
  71. package/overlays/gemini-cli/overlay.yml +15 -0
  72. package/overlays/gemini-cli/setup.sh +21 -0
  73. package/overlays/gemini-cli/verify.sh +21 -0
  74. package/overlays/opencode/README.md +76 -0
  75. package/overlays/opencode/devcontainer.patch.json +3 -0
  76. package/overlays/opencode/overlay.yml +14 -0
  77. package/overlays/opencode/setup.sh +21 -0
  78. package/overlays/opencode/verify.sh +21 -0
  79. package/overlays/spec-kit/README.md +181 -0
  80. package/overlays/spec-kit/devcontainer.patch.json +6 -0
  81. package/overlays/spec-kit/overlay.yml +19 -0
  82. package/overlays/spec-kit/setup.sh +45 -0
  83. package/overlays/spec-kit/verify.sh +33 -0
  84. package/overlays/windsurf-cli/README.md +69 -0
  85. package/overlays/windsurf-cli/devcontainer.patch.json +3 -0
  86. package/overlays/windsurf-cli/overlay.yml +15 -0
  87. package/overlays/windsurf-cli/setup.sh +21 -0
  88. package/overlays/windsurf-cli/verify.sh +21 -0
  89. package/package.json +1 -1
  90. package/tool/schema/config.schema.json +138 -9
@@ -0,0 +1,136 @@
1
+ # Workflows and Regeneration
2
+
3
+ This guide covers project-config driven generation, manifest-based regeneration,
4
+ and common workflows.
5
+
6
+ ## Project Config Workflow
7
+
8
+ Commit exactly one project config file at the repository root:
9
+
10
+ - `.superposition.yml`
11
+ - `superposition.yml`
12
+
13
+ Use it when you want standard `init` runs to start from committed defaults
14
+ instead of a copied command line.
15
+
16
+ ```bash
17
+ npx container-superposition init
18
+ ```
19
+
20
+ Use `--no-interactive` when the config fully describes the intended setup and
21
+ you want unattended generation:
22
+
23
+ ```bash
24
+ npx container-superposition init --no-interactive
25
+ ```
26
+
27
+ Direct CLI flags still win for that run only:
28
+
29
+ ```bash
30
+ npx container-superposition init --no-interactive --output ./tmp-devcontainer
31
+ ```
32
+
33
+ ## Manifest Basics
34
+
35
+ Every generation writes a `superposition.json` manifest that records your choices. It enables:
36
+
37
+ - Reproducible environments
38
+ - Safe upgrades
39
+ - Team sharing
40
+ - Regeneration with backups
41
+
42
+ ## When to Regenerate
43
+
44
+ Use `regen` when you:
45
+
46
+ - Add or remove overlays
47
+ - Update to newer overlay versions
48
+ - Change port offsets
49
+ - Switch base templates
50
+
51
+ Use `init --from-project` or `init --from-manifest` when you:
52
+
53
+ - Want to start from a persisted source and then adjust choices interactively
54
+ - Want a persisted source to provide defaults before making a targeted change
55
+
56
+ Use manual edits when you:
57
+
58
+ - Adjust VS Code settings
59
+ - Add small scripts or config files
60
+ - Tweak a single setting in custom patches
61
+
62
+ ## Quick Regeneration
63
+
64
+ ```bash
65
+ # Uses the repository project file when one exists
66
+ npx container-superposition regen
67
+
68
+ # Or select the project file explicitly
69
+ npx container-superposition regen --from-project
70
+
71
+ # Falls back to manifest discovery when no project file exists
72
+ npx container-superposition regen
73
+ ```
74
+
75
+ ## Regeneration With Changes
76
+
77
+ ```bash
78
+ # Uses manifest as defaults, then prompts for changes
79
+ npx container-superposition init --from-manifest ./.devcontainer/superposition.json
80
+
81
+ # Uses the repository project file as defaults, then prompts for changes
82
+ npx container-superposition init --from-project
83
+ ```
84
+
85
+ ## Source-Selection Conflicts
86
+
87
+ Persisted-input source flags are mutually exclusive and do not mix with
88
+ clean-generation selection flags:
89
+
90
+ ```bash
91
+ # Invalid: two persisted sources
92
+ npx container-superposition regen --from-project --from-manifest ./.devcontainer/superposition.json
93
+
94
+ # Invalid: persisted source plus structural selection flags
95
+ npx container-superposition init --from-project --stack compose
96
+ ```
97
+
98
+ ## Non-Interactive (CI/CD)
99
+
100
+ ```bash
101
+ npx container-superposition init --no-interactive
102
+
103
+ # Or keep using an explicit manifest when you want that mode
104
+ npx container-superposition init \
105
+ --from-manifest ./.devcontainer/superposition.json \
106
+ --no-interactive \
107
+ --no-backup
108
+ ```
109
+
110
+ ## Backup Behavior
111
+
112
+ - Default: creates `.devcontainer.backup-<timestamp>/`
113
+ - `--no-backup`: skips backup
114
+ - `--backup-dir <path>`: writes backups to a custom location
115
+
116
+ ## Example Workflow
117
+
118
+ ```bash
119
+ # 1. Initial setup
120
+ npx container-superposition init --stack compose --language nodejs --database postgres
121
+
122
+ # 2. Later: reapply the committed project file
123
+ npx container-superposition regen
124
+
125
+ # 3. Or regenerate explicitly from a manifest when that is the intended source
126
+ npx container-superposition init --from-manifest ./.devcontainer/superposition.json
127
+
128
+ # 4. Update to latest overlays
129
+ npx container-superposition@latest regen
130
+ ```
131
+
132
+ ## Team Workflow
133
+
134
+ For a manifest-first approach (commit only `superposition.json`), see:
135
+
136
+ - [team-workflow.md](team-workflow.md)
@@ -0,0 +1,84 @@
1
+ # Spec-Driven Development Preset
2
+ # Complete environment for SDD with specify-cli and your choice of AI coding agent
3
+
4
+ id: sdd
5
+ name: Spec-Driven Development
6
+ description: Complete Spec-Driven Development environment with specify-cli and your choice of AI coding agent
7
+ type: meta
8
+ category: preset
9
+ supports: []
10
+ tags: [preset, sdd, spec-driven, ai, specify, spec-kit]
11
+
12
+ # Overlays to always include
13
+ selects:
14
+ required:
15
+ - spec-kit
16
+
17
+ # Parameterized agent selection
18
+ # Option 'id' is the value passed to `specify init --ai <id>`.
19
+ # 'overlays' is the list of container-superposition overlay IDs to include.
20
+ parameters:
21
+ agent:
22
+ description: AI coding agent to use with Spec Kit
23
+ default: codex
24
+ options:
25
+ - id: codex
26
+ overlays: [codex]
27
+ description: OpenAI Codex CLI (--ai codex)
28
+ - id: claude
29
+ overlays: [claude-code]
30
+ description: Anthropic Claude Code (--ai claude)
31
+ - id: gemini
32
+ overlays: [gemini-cli]
33
+ description: Google Gemini CLI (--ai gemini)
34
+ - id: amp
35
+ overlays: [amp]
36
+ description: Sourcegraph Amp (--ai amp)
37
+ - id: windsurf
38
+ overlays: [windsurf-cli]
39
+ description: Codeium Windsurf (--ai windsurf)
40
+ - id: opencode
41
+ overlays: [opencode]
42
+ description: opencode (--ai opencode)
43
+ - id: copilot
44
+ overlays: []
45
+ description: GitHub Copilot (IDE-integrated, no extra CLI needed) (--ai copilot)
46
+
47
+ # Glue configuration
48
+ glueConfig:
49
+ # environment values support {{parameters.<key>.id}} template substitution —
50
+ # the preset expander replaces it with the selected option's id at generation time.
51
+ environment:
52
+ SPECIFY_AI_AGENT: '{{parameters.agent.id}}'
53
+
54
+ readme: |
55
+ ## Spec-Driven Development (SDD)
56
+
57
+ This devcontainer is configured for Spec-Driven Development using [Spec Kit](https://github.com/github/spec-kit).
58
+
59
+ ### Getting Started
60
+
61
+ Initialize SDD in your project:
62
+
63
+ ```bash
64
+ specify init . --here --ai ${SPECIFY_AI_AGENT:-codex}
65
+ ```
66
+
67
+ ### SDD Workflow
68
+
69
+ Use these slash commands in your AI agent:
70
+
71
+ | Step | Command | Description |
72
+ |------|---------|-------------|
73
+ | 1 | `/speckit.constitution` | Create project governing principles |
74
+ | 2 | `/speckit.specify` | Define requirements |
75
+ | 3 | `/speckit.clarify` | Clarify ambiguities |
76
+ | 4 | `/speckit.plan` | Create implementation plan |
77
+ | 5 | `/speckit.analyze` | Cross-artifact consistency check |
78
+ | 6 | `/speckit.tasks` | Break plan into tasks |
79
+ | 7 | `/speckit.implement` | Execute tasks with AI |
80
+
81
+ ### References
82
+
83
+ - [Spec Kit GitHub](https://github.com/github/spec-kit)
84
+ - [SDD Methodology](https://github.com/github/spec-kit/blob/main/spec-driven.md)
@@ -55,7 +55,13 @@ Each overlay directory contains:
55
55
  - **docker-in-docker** - Docker daemon inside container (conflicts with docker-sock)
56
56
  - **docker-sock** - Docker socket mounting (conflicts with docker-in-docker)
57
57
  - **playwright** - Browser automation with Chromium installed
58
- - **codex** - AI-powered code assistant
58
+ - **codex** - OpenAI Codex CLI for AI-powered code generation and assistance
59
+ - **spec-kit** - Specify CLI for Spec-Driven Development with any AI coding agent
60
+ - **claude-code** - Anthropic Claude Code CLI for AI-powered development assistance
61
+ - **gemini-cli** - Google Gemini CLI for AI-powered development assistance
62
+ - **amp** - Sourcegraph Amp CLI for AI-powered code generation and assistance
63
+ - **windsurf-cli** - Codeium Windsurf CLI for AI-powered development assistance
64
+ - **opencode** - opencode AI coding agent for terminal-based development assistance
59
65
 
60
66
  ## Environment Variables
61
67
 
@@ -0,0 +1,70 @@
1
+ # Amp Overlay
2
+
3
+ Adds the Sourcegraph Amp CLI (`amp`) for AI-powered code generation and development assistance.
4
+
5
+ ## Features
6
+
7
+ - **Amp CLI** — Sourcegraph's AI coding agent for the terminal
8
+ - **Codebase-aware** — Understands your entire repository context
9
+
10
+ ## What is Amp?
11
+
12
+ Amp is Sourcegraph's AI coding agent that works directly in your terminal with deep codebase understanding:
13
+
14
+ - **Code generation** — Generate new features from natural language
15
+ - **Codebase context** — Indexed understanding of your entire codebase
16
+ - **Multi-file edits** — Make consistent changes across the project
17
+ - **Task execution** — Autonomous multi-step development tasks
18
+
19
+ ## How It Works
20
+
21
+ This overlay installs `@sourcegraph/amp` globally via npm, making the `amp` command available in your devcontainer.
22
+
23
+ ## Common Commands
24
+
25
+ ```bash
26
+ # Start an interactive session
27
+ amp
28
+
29
+ # Check version
30
+ amp --version
31
+ ```
32
+
33
+ ## Use Cases
34
+
35
+ - **Feature development** — Describe features, Amp implements them across the codebase
36
+ - **Large refactors** — Make consistent changes across many files
37
+ - **Code review** — AI-assisted code analysis
38
+ - **Spec-Driven Development** — Works with `spec-kit` overlay via `specify init --ai amp`
39
+
40
+ **Integrates well with:**
41
+
42
+ - `spec-kit` — Use Amp with the SDD workflow
43
+ - `nodejs` — Required for installation
44
+ - `git-helpers` — Git integration for AI-generated code
45
+
46
+ ## Configuration
47
+
48
+ Authenticate with your Sourcegraph account:
49
+
50
+ ```bash
51
+ amp auth
52
+ ```
53
+
54
+ ## Verification
55
+
56
+ ```bash
57
+ bash .devcontainer/scripts/verify-amp.sh
58
+ ```
59
+
60
+ ## References
61
+
62
+ - [Amp by Sourcegraph](https://sourcegraph.com/amp)
63
+ - [Sourcegraph Platform](https://sourcegraph.com/)
64
+
65
+ **Related Overlays:**
66
+
67
+ - `spec-kit` — Spec-Driven Development with Amp as the AI agent
68
+ - `codex` — OpenAI Codex CLI (alternative AI assistant)
69
+ - `claude-code` — Anthropic Claude Code (alternative AI assistant)
70
+ - `nodejs` — Required for npm-based installation
@@ -0,0 +1,3 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
3
+ }
@@ -0,0 +1,15 @@
1
+ id: amp
2
+ name: Amp
3
+ description: Sourcegraph Amp CLI for AI-powered code generation and assistance
4
+ category: dev
5
+ supports: []
6
+ requires:
7
+ - nodejs
8
+ suggests: []
9
+ conflicts: []
10
+ tags:
11
+ - dev
12
+ - ai
13
+ - amp
14
+ - sourcegraph
15
+ ports: []
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # amp setup script - Install Sourcegraph Amp CLI
3
+
4
+ set -e
5
+
6
+ echo "đŸ“Ļ Installing Sourcegraph Amp CLI..."
7
+
8
+ # Install @sourcegraph/amp globally
9
+ npm install -g @sourcegraph/amp
10
+
11
+ # Verify installation
12
+ if command -v amp &>/dev/null; then
13
+ echo "✓ Amp CLI installed successfully: $(amp --version 2>/dev/null || echo 'installed')"
14
+ else
15
+ echo "✗ Amp CLI installation failed"
16
+ exit 1
17
+ fi
18
+
19
+ echo "✓ amp setup complete"
20
+ echo "â„šī¸ Sourcegraph Amp: https://sourcegraph.com/amp"
21
+ echo "â„šī¸ Run 'amp --help' to get started"
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # amp overlay verification script
3
+
4
+ set -e
5
+
6
+ echo "🔍 Verifying amp overlay setup..."
7
+
8
+ # Check if amp CLI is installed
9
+ if ! command -v amp &>/dev/null; then
10
+ echo "✗ amp CLI is not installed or not in PATH"
11
+ exit 1
12
+ fi
13
+
14
+ echo "✓ amp CLI is installed: $(amp --version 2>/dev/null || echo 'installed')"
15
+
16
+ echo ""
17
+ echo "✅ amp overlay verification complete!"
18
+ echo ""
19
+ echo "💡 Tips:"
20
+ echo " - Run 'amp --help' to see available commands"
21
+ echo " - Authenticate with your Sourcegraph account"
@@ -0,0 +1,83 @@
1
+ # Claude Code Overlay
2
+
3
+ Adds the Anthropic Claude Code CLI (`claude`) for AI-powered development assistance directly in the terminal.
4
+
5
+ ## Features
6
+
7
+ - **Claude Code CLI** — Interactive AI coding assistant from Anthropic
8
+ - **Terminal-first workflow** — Agentic coding directly from the command line
9
+
10
+ ## What is Claude Code?
11
+
12
+ Claude Code is Anthropic's agentic coding tool that lives in the terminal. It understands your codebase and helps you code faster through natural conversation and autonomous task execution:
13
+
14
+ - **Code generation** — Generate new features and components
15
+ - **Code review** — Get feedback on your code
16
+ - **Debugging** — Identify and fix issues
17
+ - **Refactoring** — Improve existing code
18
+ - **Testing** — Write and run tests
19
+
20
+ ## How It Works
21
+
22
+ This overlay installs `@anthropic-ai/claude-code` globally via npm, making the `claude` command available in your devcontainer.
23
+
24
+ ## Common Commands
25
+
26
+ ```bash
27
+ # Start an interactive session
28
+ claude
29
+
30
+ # Ask a one-off question
31
+ claude "explain this function"
32
+
33
+ # Authenticate with your Anthropic account
34
+ claude auth
35
+
36
+ # Check current version
37
+ claude --version
38
+ ```
39
+
40
+ ## Use Cases
41
+
42
+ - **Feature development** — Describe what you want to build, Claude implements it
43
+ - **Code review** — Get AI feedback on pull requests or code changes
44
+ - **Learning** — Understand unfamiliar codebases or concepts
45
+ - **Refactoring** — Improve code quality with AI assistance
46
+ - **Spec-Driven Development** — Works with the `spec-kit` overlay via `specify init --ai claude`
47
+
48
+ **Integrates well with:**
49
+
50
+ - `spec-kit` — Use Claude Code with the SDD workflow
51
+ - `nodejs` — Required for installation
52
+ - `git-helpers` — Git integration for AI-generated code
53
+ - `pre-commit` — Quality gates for AI-generated code
54
+
55
+ ## Configuration
56
+
57
+ Authentication is managed via the Anthropic API key:
58
+
59
+ ```bash
60
+ # Set your API key
61
+ export ANTHROPIC_API_KEY=your-api-key
62
+
63
+ # Or authenticate interactively
64
+ claude auth
65
+ ```
66
+
67
+ ## Verification
68
+
69
+ ```bash
70
+ bash .devcontainer/scripts/verify-claude-code.sh
71
+ ```
72
+
73
+ ## References
74
+
75
+ - [Claude Code Documentation](https://docs.anthropic.com/en/docs/claude-code)
76
+ - [Anthropic Platform](https://console.anthropic.com/)
77
+
78
+ **Related Overlays:**
79
+
80
+ - `spec-kit` — Spec-Driven Development with Claude as the AI agent
81
+ - `codex` — OpenAI Codex CLI (alternative AI assistant)
82
+ - `gemini-cli` — Google Gemini CLI (alternative AI assistant)
83
+ - `nodejs` — Required for npm-based installation
@@ -0,0 +1,3 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
3
+ }
@@ -0,0 +1,15 @@
1
+ id: claude-code
2
+ name: Claude Code
3
+ description: Anthropic Claude Code CLI for AI-powered development assistance
4
+ category: dev
5
+ supports: []
6
+ requires:
7
+ - nodejs
8
+ suggests: []
9
+ conflicts: []
10
+ tags:
11
+ - dev
12
+ - ai
13
+ - claude
14
+ - anthropic
15
+ ports: []
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # claude-code setup script - Install Anthropic Claude Code CLI
3
+
4
+ set -e
5
+
6
+ echo "đŸ“Ļ Installing Anthropic Claude Code CLI..."
7
+
8
+ # Install @anthropic-ai/claude-code globally
9
+ npm install -g @anthropic-ai/claude-code
10
+
11
+ # Verify installation
12
+ if command -v claude &>/dev/null; then
13
+ echo "✓ Claude Code CLI installed successfully: $(claude --version 2>/dev/null || echo 'installed')"
14
+ else
15
+ echo "✗ Claude Code CLI installation failed"
16
+ exit 1
17
+ fi
18
+
19
+ echo "✓ claude-code setup complete"
20
+ echo "â„šī¸ Anthropic Claude Code: https://docs.anthropic.com/en/docs/claude-code"
21
+ echo "â„šī¸ Run 'claude --help' to get started"
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # claude-code overlay verification script
3
+
4
+ set -e
5
+
6
+ echo "🔍 Verifying claude-code overlay setup..."
7
+
8
+ # Check if claude CLI is installed
9
+ if ! command -v claude &>/dev/null; then
10
+ echo "✗ claude CLI is not installed or not in PATH"
11
+ exit 1
12
+ fi
13
+
14
+ echo "✓ claude CLI is installed: $(claude --version 2>/dev/null || echo 'installed')"
15
+
16
+ echo ""
17
+ echo "✅ claude-code overlay verification complete!"
18
+ echo ""
19
+ echo "💡 Tips:"
20
+ echo " - Run 'claude --help' to see available commands"
21
+ echo " - Authenticate with: claude auth"
@@ -0,0 +1,77 @@
1
+ # Gemini CLI Overlay
2
+
3
+ Adds the Google Gemini CLI (`gemini`) for AI-powered development assistance directly in the terminal.
4
+
5
+ ## Features
6
+
7
+ - **Gemini CLI** — Google's AI-powered coding assistant for the terminal
8
+ - **Gemini 2.0 Flash** — Free tier available with Google account
9
+
10
+ ## What is Gemini CLI?
11
+
12
+ The Google Gemini CLI is an open-source AI agent that brings Google's Gemini models directly to your terminal workflow:
13
+
14
+ - **Code generation** — Generate code from natural language descriptions
15
+ - **Codebase queries** — Ask questions about your code
16
+ - **Agentic tasks** — Execute multi-step coding tasks autonomously
17
+ - **Web grounding** — Access Google Search for up-to-date information
18
+
19
+ ## How It Works
20
+
21
+ This overlay installs `@google/gemini-cli` globally via npm, making the `gemini` command available in your devcontainer.
22
+
23
+ ## Common Commands
24
+
25
+ ```bash
26
+ # Start an interactive session
27
+ gemini
28
+
29
+ # Ask a one-off question
30
+ gemini "how do I implement a binary search tree in TypeScript?"
31
+
32
+ # Check version
33
+ gemini --version
34
+ ```
35
+
36
+ ## Use Cases
37
+
38
+ - **Code generation** — Describe features, Gemini implements them
39
+ - **Codebase exploration** — Understand large or unfamiliar codebases
40
+ - **Debugging** — Diagnose and fix errors with AI help
41
+ - **Spec-Driven Development** — Works with `spec-kit` overlay via `specify init --ai gemini`
42
+
43
+ **Integrates well with:**
44
+
45
+ - `spec-kit` — Use Gemini CLI with the SDD workflow
46
+ - `nodejs` — Required for installation
47
+ - `git-helpers` — Git integration for AI-generated code
48
+
49
+ ## Configuration
50
+
51
+ Authenticate using your Google account or a Gemini API key:
52
+
53
+ ```bash
54
+ # Interactive authentication (opens browser)
55
+ gemini auth
56
+
57
+ # Or set API key
58
+ export GEMINI_API_KEY=your-api-key
59
+ ```
60
+
61
+ ## Verification
62
+
63
+ ```bash
64
+ bash .devcontainer/scripts/verify-gemini-cli.sh
65
+ ```
66
+
67
+ ## References
68
+
69
+ - [Gemini CLI GitHub](https://github.com/google-gemini/gemini-cli)
70
+ - [Google AI Studio](https://aistudio.google.com/)
71
+
72
+ **Related Overlays:**
73
+
74
+ - `spec-kit` — Spec-Driven Development with Gemini as the AI agent
75
+ - `codex` — OpenAI Codex CLI (alternative AI assistant)
76
+ - `claude-code` — Anthropic Claude Code (alternative AI assistant)
77
+ - `nodejs` — Required for npm-based installation
@@ -0,0 +1,3 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
3
+ }
@@ -0,0 +1,15 @@
1
+ id: gemini-cli
2
+ name: Gemini CLI
3
+ description: Google Gemini CLI for AI-powered development assistance
4
+ category: dev
5
+ supports: []
6
+ requires:
7
+ - nodejs
8
+ suggests: []
9
+ conflicts: []
10
+ tags:
11
+ - dev
12
+ - ai
13
+ - gemini
14
+ - google
15
+ ports: []
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # gemini-cli setup script - Install Google Gemini CLI
3
+
4
+ set -e
5
+
6
+ echo "đŸ“Ļ Installing Google Gemini CLI..."
7
+
8
+ # Install @google/gemini-cli globally
9
+ npm install -g @google/gemini-cli
10
+
11
+ # Verify installation
12
+ if command -v gemini &>/dev/null; then
13
+ echo "✓ Gemini CLI installed successfully: $(gemini --version 2>/dev/null || echo 'installed')"
14
+ else
15
+ echo "✗ Gemini CLI installation failed"
16
+ exit 1
17
+ fi
18
+
19
+ echo "✓ gemini-cli setup complete"
20
+ echo "â„šī¸ Google Gemini CLI: https://github.com/google-gemini/gemini-cli"
21
+ echo "â„šī¸ Run 'gemini --help' to get started"
@@ -0,0 +1,21 @@
1
+ #!/bin/bash
2
+ # gemini-cli overlay verification script
3
+
4
+ set -e
5
+
6
+ echo "🔍 Verifying gemini-cli overlay setup..."
7
+
8
+ # Check if gemini CLI is installed
9
+ if ! command -v gemini &>/dev/null; then
10
+ echo "✗ gemini CLI is not installed or not in PATH"
11
+ exit 1
12
+ fi
13
+
14
+ echo "✓ gemini CLI is installed: $(gemini --version 2>/dev/null || echo 'installed')"
15
+
16
+ echo ""
17
+ echo "✅ gemini-cli overlay verification complete!"
18
+ echo ""
19
+ echo "💡 Tips:"
20
+ echo " - Run 'gemini --help' to see available commands"
21
+ echo " - Authenticate with your Google account or API key"