Agent Skill
2/7/2026

just-cli

This skill should be used when the user asks to "create a justfile", "write just recipes", "configure just settings", "add just modules", "use just attributes", "set up task automation", mentions justfile, just command runner, or task automation with just.

J
jakmaz
6GitHub Stars
1Views
npx skills add jakmaz/dotfiles

SKILL.md

Namejust-cli
DescriptionThis skill should be used when the user asks to "create a justfile", "write just recipes", "configure just settings", "add just modules", "use just attributes", "set up task automation", mentions justfile, just command runner, or task automation with just.

name: Just CLI description: This skill should be used when the user asks to "create a justfile", "write just recipes", "configure just settings", "add just modules", "use just attributes", "set up task automation", mentions justfile, just command runner, or task automation with just. version: 0.1.0

Just Command Runner

Overview

Expert guidance for Just, a command runner with syntax inspired by make. Use this skill for creating justfiles, writing recipes, configuring settings, and implementing task automation workflows.

Key capabilities:

  • Create and organize justfiles with proper structure
  • Write recipes with attributes, dependencies, and parameters
  • Configure settings for shell, modules, and imports
  • Use built-in constants for terminal formatting
  • Implement check/write patterns for code quality tools

Important Style Guidelines:

  • Keep justfiles minimal and clean
  • Do not use emojis in recipes or output
  • Use small dividers # --- for grouping instead of large section headers
  • Focus on functionality over decoration

Quick Reference

Common Attributes

AttributePurpose
[group("name")]Group recipes in just --list output
[no-cd]Don't change to justfile directory
[private]Hide from just --list (same as _ prefix)
[script]Execute recipe as single script block
[script("interpreter")]Use specific interpreter (bash, python, etc.)
[confirm("prompt")]Require user confirmation before running
[doc("text")]Override recipe documentation
[positional-arguments]Enable positional args for this recipe only

Multiple attributes can be combined:

[no-cd, private]
[group("checks")]
recipe:
    echo "hello"

Built-in Constants

Terminal formatting constants are globally available (no definition needed):

ConstantDescription
CYAN, GREEN, RED, YELLOW, BLUE, PURPLEText colors
BOLD, ITALIC, UNDERLINE, STRIKETHROUGHText styles
NORMALReset formatting
BG_*Background colors (BG_RED, BG_GREEN, etc.)
HEX, HEXLOWERHexadecimal digits

Usage:

@status:
    echo -e '{{ GREEN }}Success!{{ NORMAL }}'
    echo -e '{{ BOLD + CYAN }}Building...{{ NORMAL }}'

Key Functions

# Require executable exists (fails recipe if not found)
jq := require("jq")

# Get environment variable with default
log_level := env("LOG_LEVEL", "info")

# Get justfile directory path
root := justfile_dir()

Recipe Patterns

Status Reporter Pattern

Display formatted status during multi-step workflows:

@_run-with-status recipe *args:
    echo ""
    echo -e '{{ CYAN }}Running {{ recipe }}...{{ NORMAL }}'
    just {{ recipe }} {{ args }}
    echo -e '{{ GREEN }}{{ recipe }} completed{{ NORMAL }}'
alias rws := _run-with-status

Check/Write Pattern

Pair check (verify) and write (fix) recipes for code quality tools:

[group("checks")]
@biome-check +globs=".":
    na biome check {{ globs }}
alias bc := biome-check

[group("checks")]
@biome-write +globs=".":
    na biome check --write {{ globs }}
alias bw := biome-write

Full Check/Write Pattern

Aggregate all checks with status reporting:

[group("checks")]
@full-check:
    just _run-with-status biome-check
    just _run-with-status prettier-check
    just _run-with-status tsc-check
    echo ""
    echo -e '{{ GREEN }}All code checks passed!{{ NORMAL }}'
alias fc := full-check

[group("checks")]
@full-write:
    just _run-with-status biome-write
    just _run-with-status prettier-write
    echo ""
    echo -e '{{ GREEN }}All code fixes applied!{{ NORMAL }}'
alias fw := full-write

Standard Alias Conventions

RecipeAliasRecipeAlias
full-checkfcfull-writefw
biome-checkbcbiome-writebw
prettier-checkpcprettier-writepw
mdformat-checkmcmdformat-writemw
tsc-checktcruff-checkrc
testtbuildb

Modules & Imports

Import Pattern

Include recipes from another file:

import "./just/settings.just"
import "./just/base.just"
import? "./local.just"    # Optional (no error if missing)

Module Pattern

Load submodule (requires set unstable):

mod foo                   # Loads foo.just or foo/justfile
mod bar "path/to/bar"     # Custom path
mod? optional             # Optional module

# Call module recipes
just foo::build

Devkit Import Pattern

For projects using @sablier/devkit:

import "./node_modules/@sablier/devkit/just/base.just"
import "./node_modules/@sablier/devkit/just/npm.just"

Section Organization

For minimal organization, use small dividers only when grouping is needed:

# --- Dependencies ---

# Bun: https://bun.sh
bun := require("bun")

# --- Main Commands ---

# Show available commands
default:
    @just --list

Common sections (in order):

  1. Dependencies - Required tools with URLs
  2. Constants - Glob patterns, environment vars
  3. Main Commands - Primary entry points
  4. Checks - Code quality recipes
  5. Utilities - Private helpers

Default Recipe

Always define a default recipe:

# Show available commands
default:
    @just --list

Dependencies Declaration

Document required tools at the top:

# --- Dependencies ---

# Bun: https://bun.sh
bun := require("bun")

# Ni: https://github.com/antfu-collective/ni
na := require("na")
ni := require("ni")
nlx := require("nlx")

Context7 Fallback

For Just features not covered in this skill (new attributes, advanced functions, edge cases), fetch the latest documentation:

Use context7 MCP with library ID `/websites/just_systems-man` to get up-to-date Just documentation.

Example topics to search:

  • modules import mod - Module system details
  • settings - All available settings
  • attributes - Recipe attributes
  • functions - Built-in functions
  • script recipes - Script block syntax

Additional Resources

Reference Files

For detailed patterns and comprehensive coverage, consult:

External Documentation

Important Limitations

Just does not support flags. Recipe parameters are positional only:

# WRONG: Flags don't work
build --release:  # This won't work!

# CORRECT: Use positional parameters
build mode="debug":
    cargo build {{ if mode == "release" { "--release" } else { "" } }}

# Usage: just build release

For complex flag-like behavior, use environment variables or positional parameters with defaults.

Tips

  1. Use @ prefix to suppress command echo: @echo "quiet"
  2. Use + for variadic parameters: test +args
  3. Use * for optional variadic: build *flags
  4. Quote glob patterns in variables: GLOBS := "\"**/*.json\""
  5. Use [no-cd] in monorepos to stay in current directory
  6. Private recipes start with _ or use [private]
  7. Always define aliases after recipe names for discoverability
  8. Keep output clean and minimal - avoid emojis and decorative elements
Skills Info
Original Name:just-cliAuthor:jakmaz