A VS Code/Cursor extension that provides a fuzzy-searchable quick picker for running Just recipes with persistent terminal support.
Screen.Recording.2025-12-05.at.13.12.13.mov
- 🔍 Fuzzy search through all available Just recipes
- 📁 Multi-file support - automatically discovers recipes from both
Justfileand*.justfiles - 🔄 Persistent terminals - reuses terminal windows for each recipe
- ⌨️ Keyboard shortcut -
Ctrl+Shift+J(orCmd+Shift+Jon Mac) - 📝 Recipe descriptions - displays descriptions from Just recipe comments
- Just must be installed and available in your PATH
- A
Justfilein your workspace root
- Open the command palette (
Ctrl+Shift+P/Cmd+Shift+P) - Type "Just: Run Recipe" or use the keyboard shortcut
Ctrl+Shift+J/Cmd+Shift+J - Select a recipe from the fuzzy-searchable list
- The recipe runs in a persistent terminal that can be reused
When you run the same recipe again, it will reuse the existing terminal window instead of creating a new one.
- Node.js (v18 or higher)
- npm or yarn
- VS Code or Cursor
- Download the .vsix file for the extension
- Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Type "Install from VSIX" and select it
- Browse to and select the .vsix file
-
Clone and setup:
cd cursor-just-runner npm install -
Compile TypeScript:
npm run compile
Or watch for changes:
npm run watch
-
Test the extension locally:
- Open the
cursor-just-runnerfolder in VS Code/Cursor - Press
F5to open a new Extension Development Host window - In the new window, open a folder with a Justfile
- Press
Ctrl+Shift+Jor run the command "Just: Run Recipe"
- Open the
-
Debug:
- Set breakpoints in
src/extension.ts - Press
F5to start debugging - The extension will reload when you make changes (if using watch mode)
- Set breakpoints in
cursor-just-runner/
├── src/
│ └── extension.ts # Main extension code
├── out/ # Compiled JavaScript (generated)
├── package.json # Extension manifest
├── tsconfig.json # TypeScript config
└── README.md # This file
-
Create a publisher account:
- Go to https://marketplace.visualstudio.com/manage
- Sign in with your Microsoft account
- Create a new publisher
-
Update package.json:
- Change
"publisher": "your-publisher-name"to your actual publisher ID - Update version, description, author, etc.
- Change
-
Install vsce (VS Code Extension Manager):
npm install -g @vscode/vsce
-
Package the extension:
npm run package
This creates a
.vsixfile. -
Publish:
vsce publish
Or login first:
vsce login <your-publisher-name> vsce publish
-
Package the extension:
npm run package
-
Share the
.vsixfile with your team -
Team members install it:
- Open VS Code/Cursor
- Go to Extensions view (
Ctrl+Shift+X) - Click the "..." menu at the top
- Select "Install from VSIX..."
- Choose the
.vsixfile
For enterprise teams, you can host a private extension registry:
-
Set up a private marketplace using:
- Azure DevOps (has built-in private marketplace)
- GitHub Packages
- Your own server
-
Configure VS Code to use private registry:
// settings.json { "extensions.gallery": { "serviceUrl": "https://your-private-registry.com" } }
-
Versioning: Follow semantic versioning (MAJOR.MINOR.PATCH)
vsce publish major # 1.0.0 -> 2.0.0 vsce publish minor # 1.0.0 -> 1.1.0 vsce publish patch # 1.0.0 -> 1.0.1
-
Add an icon: Create a 128x128 PNG icon
// package.json { "icon": "icon.png" }
-
Add a repository link:
{ "repository": { "type": "git", "url": "https://github.com/your-org/just-runner" } } -
Test before publishing:
- Install the
.vsixlocally - Test all features
- Check on different OS (Windows, Mac, Linux)
- Install the
Currently, the extension works out of the box with no configuration needed. Future versions may add:
- Custom keybindings
- Terminal behavior options
- Just executable path
"Just is not installed or not in PATH"
- Install Just: https://github.com/casey/just#installation
- Make sure
just --versionworks in your terminal
"No recipes found"
- Make sure you have a
Justfilein your workspace root - Check that the file is named correctly (case-sensitive on Linux/Mac)
Terminal not reusing
- Close existing terminals manually and try again
- Restart VS Code/Cursor
MIT
Inspired by the Neovim Telescope Just picker implementation.