Loading...
Loading...
Just command runner expertise, Justfile syntax, recipe development, and cross-platform task automation. Covers recipe patterns, parameters, modules, settings, shebang recipes for multi-language scripts, and workflow integration. Use when user mentions just, justfile, recipes, command runner, task automation, project commands, or needs help writing executable project documentation.
npx skill4agent add laurigates/claude-plugins justfile-expert| Use this skill when... | Use alternative when... |
|---|---|
| Creating/editing justfiles for task automation | Need build system with incremental compilation → Make |
| Writing cross-platform project commands | Need tool version management bundled → mise tasks |
| Adding shebang recipes (Python, Node, Ruby, etc.) | Already using mise for all project tooling |
| Configuring dotenv loading and settings | Simple one-off shell scripts → Bash directly |
| Setting up CI/CD with just recipes | Project already has extensive Makefile |
| Standardizing recipes across projects | Need Docker-specific workflows → docker-compose |
| Rule | Pattern | Examples |
|---|---|---|
| Hyphen-separated | | |
| Verb-first (actions) | | |
| Noun-first (categories) | | |
| Private prefix | | |
| Read-only verification | |
| Auto-correction | |
| Watch mode | |
| Modifiers after base | | |
| Recipe | Composition | Purpose |
|---|---|---|
| | Code quality only, no tests |
| | Fast, non-mutating validation |
| | Full CI simulation |
| Remove build artifacts | Partial cleanup |
| | Full cleanup |
# Composite: code quality only (no tests)
check: format-check lint typecheck
# Pre-commit checks (fast, non-mutating)
pre-commit: format-check lint typecheck test-unit
@echo "Pre-commit checks passed"
# Full CI simulation
ci: check test-coverage build
@echo "CI simulation passed"
# Clean build artifacts
clean:
rm -rf dist build .next
# Clean everything including deps
clean-all: clean
rm -rf node_modules .venv __pycache__recipe param:recipe param="default":+recipe +FILES:*recipe *FLAGS:recipe $VAR:set dotenv-load.envset positional-arguments$1$2set exportset shellset quiet[private]--list[no-cd][no-exit-message][unix][windows][linux][macos][positional-arguments][confirm][confirm("message")][group: "name"]--list[working-directory: "path"]mod namemod name 'path'just module::recipejust module recipe# Comment describes the recipe
recipe-name:
command1
command2build target:
@echo "Building {{target}}..."
cd {{target}} && make
test *args:
uv run pytest {{args}}default: build test
build: _setup
cargo build --release
_setup:
@echo "Setting up..."version := "1.0.0"
project := env('PROJECT_NAME', 'default')
info:
@echo "Project: {{project}} v{{version}}"[unix]
open:
xdg-open http://localhost:8080
[windows]
open:
start http://localhost:8080# Justfile - Project task runner
# Run `just` or `just help` to see available recipes
set dotenv-load
set positional-arguments
# Default recipe - show help
default:
@just --list
# Show available recipes with descriptions
help:
@just --list --unsorted
####################
# Development
####################
# Start development environment
dev:
# bun run dev / uv run uvicorn app:app --reload / skaffold dev
# Build for production
build:
# bun run build / cargo build --release / docker build
# Clean build artifacts
clean:
# rm -rf dist build .next
####################
# Code Quality
####################
# Run linter (read-only)
lint *args:
# bun run lint / uv run ruff check {{args}}
# Auto-fix lint issues
lint-fix:
# bun run lint:fix / uv run ruff check --fix .
# Format code (mutating)
format *args:
# bun run format / uv run ruff format {{args}}
# Check formatting without modifying (non-mutating)
format-check *args:
# bun run format:check / uv run ruff format --check {{args}}
# Type checking
typecheck:
# bunx tsc --noEmit / uv run basedpyright
####################
# Testing
####################
# Run all tests
test *args:
# bun test {{args}} / uv run pytest {{args}}
# Run unit tests only
test-unit *args:
# bun test --grep unit {{args}} / uv run pytest -m unit {{args}}
####################
# Workflows
####################
# Composite: code quality (no tests)
check: format-check lint typecheck
# Pre-commit checks (fast, non-mutating)
pre-commit: format-check lint typecheck test-unit
@echo "Pre-commit checks passed"
# Full CI simulation
ci: check test-coverage build
@echo "CI simulation passed"| Section | Recipes | Purpose |
|---|---|---|
| Metadata | | Discovery and navigation |
| Development | | Core dev cycle |
| Code Quality | | Code standards |
| Testing | | Test tiers |
| Workflows | | Composite operations |
| Dependencies | | Package management |
| Database | | Data operations |
| Kubernetes | | Container orchestration |
| Documentation | | Project docs |
##################### Initial project setup
setup:
#!/usr/bin/env bash
set -euo pipefail
echo "Installing dependencies..."
uv sync
echo "Setting up pre-commit..."
pre-commit install
echo "Done!"# Build container image
docker-build tag="latest":
docker build -t {{project}}:{{tag}} .
# Run container
docker-run tag="latest" *args:
docker run --rm -it {{project}}:{{tag}} {{args}}
# Push to registry
docker-push tag="latest":
docker push {{registry}}/{{project}}:{{tag}}# Run database migrations
db-migrate:
uv run alembic upgrade head
# Create new migration
db-revision message:
uv run alembic revision --autogenerate -m "{{message}}"
# Reset database
db-reset:
uv run alembic downgrade base
uv run alembic upgrade head# Full CI check (lint + test + build)
ci: lint test build
@echo "CI passed!"
# Release workflow
release version:
git tag -a "v{{version}}" -m "Release {{version}}"
git push origin "v{{version}}"just-mcp# Via npm
npx just-mcp --stdio
# Via pip/uvx
uvx just-mcp --stdio
# Via cargo
cargo install just-mcp.claude/mcp.json{
"mcpServers": {
"just-mcp": {
"command": "npx",
"args": ["-y", "just-mcp", "--stdio"]
}
}
}list_recipesrun_recipeget_recipe_infovalidate_justfile| Context | Command |
|---|---|
| List all recipes | |
| Dry run (preview) | |
| Show variables | |
| JSON recipe list | |
| Verbose execution | |
| Specific justfile | |
| Working directory | |
| Choose interactively | |
buildtestdeploy[private]default@set dotenv-load*args| Feature | Just | Make | mise tasks |
|---|---|---|---|
| Syntax | Simple, clear | Complex, tabs required | YAML |
| Dependencies | Built-in | Built-in | Manual |
| Parameters | Full support | Limited | Full support |
| Cross-platform | Excellent | Good | Excellent |
| Tool versions | No | No | Yes |
| Error messages | Clear | Cryptic | Clear |
| Installation | Single binary | Pre-installed | Requires mise |