Skip to content

Commit 500807a

Browse files
committed
Add support for Junie
1 parent 6644f69 commit 500807a

File tree

9 files changed

+65
-31
lines changed

9 files changed

+65
-31
lines changed

.devcontainer/post-create.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ echo -e "\n🤖 Installing OpenCode CLI..."
5151
run_command "npm install -g opencode-ai@latest"
5252
echo "✅ Done"
5353

54+
echo -e "\n🤖 Installing Junie CLI..."
55+
run_command "npm install -g @jetbrains/junie-cli@latest"
56+
echo "✅ Done"
57+
5458
echo -e "\n🤖 Installing Kiro CLI..."
5559
# https://kiro.dev/docs/cli/
5660
KIRO_INSTALLER_URL="https://kiro.dev/install.sh"

.github/workflows/scripts/create-github-release.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ gh release create "$VERSION" \
3030
.genreleases/spec-kit-template-qwen-ps-"$VERSION".zip \
3131
.genreleases/spec-kit-template-windsurf-sh-"$VERSION".zip \
3232
.genreleases/spec-kit-template-windsurf-ps-"$VERSION".zip \
33+
.genreleases/spec-kit-template-junie-sh-"$VERSION".zip \
34+
.genreleases/spec-kit-template-junie-ps-"$VERSION".zip \
3335
.genreleases/spec-kit-template-codex-sh-"$VERSION".zip \
3436
.genreleases/spec-kit-template-codex-ps-"$VERSION".zip \
3537
.genreleases/spec-kit-template-kilocode-sh-"$VERSION".zip \

.github/workflows/scripts/create-release-packages.ps1

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
1515
.PARAMETER Agents
1616
Comma or space separated subset of agents to build (default: all)
17-
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, codex, kilocode, auggie, roo, codebuddy, amp, kiro-cli, bob, qodercli, shai, tabnine, agy, vibe, kimi, trae, generic
17+
Valid agents: claude, gemini, copilot, cursor-agent, qwen, opencode, windsurf, junie, codex, kilocode, auggie, roo, codebuddy, amp, kiro-cli, bob, qodercli, shai, tabnine, agy, vibe, kimi, trae, generic
1818
1919
.PARAMETER Scripts
2020
Comma or space separated subset of script types to build (default: both)
@@ -395,6 +395,10 @@ function Build-Variant {
395395
$cmdDir = Join-Path $baseDir ".windsurf/workflows"
396396
Generate-Commands -Agent 'windsurf' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
397397
}
398+
'junie' {
399+
$cmdDir = Join-Path $baseDir ".junie/commands"
400+
Generate-Commands -Agent 'junie' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
401+
}
398402
'codex' {
399403
$cmdDir = Join-Path $baseDir ".codex/prompts"
400404
Generate-Commands -Agent 'codex' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
@@ -475,7 +479,7 @@ function Build-Variant {
475479
}
476480

477481
# Define all agents and scripts
478-
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'bob', 'qodercli', 'shai', 'tabnine', 'agy', 'vibe', 'kimi', 'trae', 'generic')
482+
$AllAgents = @('claude', 'gemini', 'copilot', 'cursor-agent', 'qwen', 'opencode', 'windsurf', 'junie', 'codex', 'kilocode', 'auggie', 'roo', 'codebuddy', 'amp', 'kiro-cli', 'bob', 'qodercli', 'shai', 'tabnine', 'agy', 'vibe', 'kimi', 'trae', 'generic')
479483
$AllScripts = @('sh', 'ps')
480484

481485
function Normalize-List {

.github/workflows/scripts/create-release-packages.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -euo pipefail
66
# Usage: .github/workflows/scripts/create-release-packages.sh <version>
77
# Version argument should include leading 'v'.
88
# Optionally set AGENTS and/or SCRIPTS env vars to limit what gets built.
9-
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae generic (default: all)
9+
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf junie codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae generic (default: all)
1010
# SCRIPTS : space or comma separated subset of: sh ps (default: both)
1111
# Examples:
1212
# AGENTS=claude SCRIPTS=sh $0 v0.2.0
@@ -248,6 +248,9 @@ build_variant() {
248248
windsurf)
249249
mkdir -p "$base_dir/.windsurf/workflows"
250250
generate_commands windsurf md "\$ARGUMENTS" "$base_dir/.windsurf/workflows" "$script" ;;
251+
junie)
252+
mkdir -p "$base_dir/.junie/commands"
253+
generate_commands junie md "\$ARGUMENTS" "$base_dir/.junie/commands" "$script" ;;
251254
codex)
252255
mkdir -p "$base_dir/.codex/prompts"
253256
generate_commands codex md "\$ARGUMENTS" "$base_dir/.codex/prompts" "$script" ;;
@@ -303,7 +306,7 @@ build_variant() {
303306
}
304307

305308
# Determine agent list
306-
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae generic)
309+
ALL_AGENTS=(claude gemini copilot cursor-agent qwen opencode windsurf junie codex kilocode auggie roo codebuddy amp shai tabnine kiro-cli agy bob vibe qodercli kimi trae generic)
307310
ALL_SCRIPTS=(sh ps)
308311

309312
norm_list() {

AGENTS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Specify supports multiple AI agents by generating agent-specific command files a
3535
| **opencode** | `.opencode/command/` | Markdown | `opencode` | opencode CLI |
3636
| **Codex CLI** | `.codex/commands/` | Markdown | `codex` | Codex CLI |
3737
| **Windsurf** | `.windsurf/workflows/` | Markdown | N/A (IDE-based) | Windsurf IDE workflows |
38+
| **Junie** | `.junie/commands/` | Markdown | `junie` | Junie by JetBrains |
3839
| **Kilo Code** | `.kilocode/rules/` | Markdown | N/A (IDE-based) | Kilo Code IDE |
3940
| **Auggie CLI** | `.augment/rules/` | Markdown | `auggie` | Auggie CLI |
4041
| **Roo Code** | `.roo/rules/` | Markdown | N/A (IDE-based) | Roo Code IDE |
@@ -316,6 +317,7 @@ Require a command-line tool to be installed:
316317
- **Cursor**: `cursor-agent` CLI
317318
- **Qwen Code**: `qwen` CLI
318319
- **opencode**: `opencode` CLI
320+
- **Junie**: `junie` CLI
319321
- **Kiro CLI**: `kiro-cli` CLI
320322
- **CodeBuddy CLI**: `codebuddy` CLI
321323
- **Qoder CLI**: `qodercli` CLI
@@ -336,7 +338,7 @@ Work within integrated development environments:
336338

337339
### Markdown Format
338340

339-
Used by: Claude, Cursor, opencode, Windsurf, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code, Qwen
341+
Used by: Claude, Cursor, opencode, Windsurf, Junie, Kiro CLI, Amp, SHAI, IBM Bob, Kimi Code, Qwen
340342

341343
**Standard format:**
342344

README.md

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ See Spec-Driven Development in action across different scenarios with these comm
185185
| [Mistral Vibe](https://github.com/mistralai/mistral-vibe) || |
186186
| [Kimi Code](https://code.kimi.com/) || |
187187
| [Windsurf](https://windsurf.com/) || |
188+
| [Junie](https://junie.jetbrains.com/) || |
188189
| [Antigravity (agy)](https://antigravity.google/) || Requires `--ai-skills` |
189190
| [Trae](https://www.trae.ai/) || |
190191
| Generic || Bring your own agent — use `--ai generic --ai-commands-dir <path>` for unsupported agents |
@@ -195,27 +196,27 @@ The `specify` command supports the following options:
195196

196197
### Commands
197198

198-
| Command | Description |
199-
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
200-
| `init` | Initialize a new Specify project from the latest template |
201-
| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `cursor-agent`, `windsurf`, `qwen`, `opencode`, `codex`, `kiro-cli`, `shai`, `qodercli`, `vibe`, `kimi`) |
199+
| Command | Description |
200+
| ------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
201+
| `init` | Initialize a new Specify project from the latest template |
202+
| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `cursor-agent`, `windsurf`, `junie`, `qwen`, `opencode`, `codex`, `kiro-cli`, `shai`, `qodercli`, `vibe`, `kimi`) |
202203

203204
### `specify init` Arguments & Options
204205

205-
| Argument/Option | Type | Description |
206-
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
207-
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory) |
208-
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `kiro-cli` (`kiro` alias), `agy`, `bob`, `qodercli`, `vibe`, `kimi`, or `generic` (requires `--ai-commands-dir`) |
209-
| `--ai-commands-dir` | Option | Directory for agent command files (required with `--ai generic`, e.g. `.myagent/commands/`) |
210-
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
211-
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
212-
| `--no-git` | Flag | Skip git repository initialization |
213-
| `--here` | Flag | Initialize project in the current directory instead of creating a new one |
214-
| `--force` | Flag | Force merge/overwrite when initializing in current directory (skip confirmation) |
215-
| `--skip-tls` | Flag | Skip SSL/TLS verification (not recommended) |
216-
| `--debug` | Flag | Enable detailed debug output for troubleshooting |
217-
| `--github-token` | Option | GitHub token for API requests (or set GH_TOKEN/GITHUB_TOKEN env variable) |
218-
| `--ai-skills` | Flag | Install Prompt.MD templates as agent skills in agent-specific `skills/` directory (requires `--ai`) |
206+
| Argument/Option | Type | Description |
207+
| ---------------------- | -------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
208+
| `<project-name>` | Argument | Name for your new project directory (optional if using `--here`, or use `.` for current directory) |
209+
| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor-agent`, `qwen`, `opencode`, `codex`, `windsurf`, `junie`, `kilocode`, `auggie`, `roo`, `codebuddy`, `amp`, `shai`, `kiro-cli` (`kiro` alias), `agy`, `bob`, `qodercli`, `vibe`, `kimi`, or `generic` (requires `--ai-commands-dir`) |
210+
| `--ai-commands-dir` | Option | Directory for agent command files (required with `--ai generic`, e.g. `.myagent/commands/`) |
211+
| `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) |
212+
| `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code |
213+
| `--no-git` | Flag | Skip git repository initialization |
214+
| `--here` | Flag | Initialize project in the current directory instead of creating a new one |
215+
| `--force` | Flag | Force merge/overwrite when initializing in current directory (skip confirmation) |
216+
| `--skip-tls` | Flag | Skip SSL/TLS verification (not recommended) |
217+
| `--debug` | Flag | Enable detailed debug output for troubleshooting |
218+
| `--github-token` | Option | GitHub token for API requests (or set GH_TOKEN/GITHUB_TOKEN env variable) |
219+
| `--ai-skills` | Flag | Install Prompt.MD templates as agent skills in agent-specific `skills/` directory (requires `--ai`) |
219220

220221
### Examples
221222

@@ -244,6 +245,9 @@ specify init my-project --ai amp
244245
# Initialize with SHAI support
245246
specify init my-project --ai shai
246247

248+
# Initialize with Junie support
249+
specify init my-project --ai junie
250+
247251
# Initialize with Mistral Vibe support
248252
specify init my-project --ai vibe
249253

@@ -427,7 +431,7 @@ specify init . --force --ai claude
427431
specify init --here --force --ai claude
428432
```
429433

430-
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, or Mistral Vibe installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
434+
The CLI will check if you have Claude Code, Gemini CLI, Cursor CLI, Qwen CLI, opencode, Codex CLI, Qoder CLI, Tabnine CLI, Kiro CLI, Mistral Vibe, or Junie installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command:
431435

432436
```bash
433437
specify init <project_name> --ai claude --ignore-agent-tools

0 commit comments

Comments
 (0)