devenv

Use devenv as the task runner and development environment when devenv.nix is present in the project. Run scripts via `devenv test` to enter the shell, or `devenv shell <command>` when commands aren't available outside the shell. Prefer devenv scripts over ad-hoc commands. Use when devenv.nix exists, or when the user asks about devenv setup, scripts, processes, or Nix-based dev environments.

15 stars

Best use case

devenv is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use devenv as the task runner and development environment when devenv.nix is present in the project. Run scripts via `devenv test` to enter the shell, or `devenv shell <command>` when commands aren't available outside the shell. Prefer devenv scripts over ad-hoc commands. Use when devenv.nix exists, or when the user asks about devenv setup, scripts, processes, or Nix-based dev environments.

Teams using devenv should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/devenv/SKILL.md --create-dirs "https://raw.githubusercontent.com/ifiokjr/oh-pi/main/packages/skills/skills/devenv/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/devenv/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How devenv Compares

Feature / AgentdevenvStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use devenv as the task runner and development environment when devenv.nix is present in the project. Run scripts via `devenv test` to enter the shell, or `devenv shell <command>` when commands aren't available outside the shell. Prefer devenv scripts over ad-hoc commands. Use when devenv.nix exists, or when the user asks about devenv setup, scripts, processes, or Nix-based dev environments.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# devenv Skill

## Activation

Load this skill when `devenv.nix` exists in the project root, or when the user mentions devenv,
Nix shells, or project task runners.

## Quick start

```bash
# Enter the development shell (sets up PATH, env, git hooks)
devenv test

# Run a one-off command inside the shell
devenv shell <command>

# Run a named script
devenv shell <script-name>
# Example: devenv shell lint:all
```

## Core rules

1. **Prefer devenv scripts over raw commands.** When a `scripts` block exists in `devenv.nix`,
   always use the script name instead of the underlying command.

   ```bash
   # ✅ Preferred
   devenv shell lint:all
   devenv shell test:all

   # ❌ Avoid
   cargo clippy --workspace --all-features -- -D warnings
   pnpm test
   ```

2. **Use `devenv shell <command>` when direct commands fail.** If `pnpm`, `cargo`, or other
   project tools are not on PATH, prefix with `devenv shell`:

   ```bash
   devenv shell pnpm install
   devenv shell cargo build --workspace
   ```

3. **Use `devenv test` to enter the shell** for interactive work or to verify the environment
   is correctly set up.

4. **Check `devenv.nix` scripts before inventing commands.** Always read the `scripts` block to
   find existing task names before running raw commands.

## Common patterns

### Running project tasks

```bash
devenv shell build:all       # Build everything
devenv shell test:all        # Run all tests
devenv shell lint:all        # Run all lints
devenv shell fix:all         # Fix all autofixable problems
devenv shell docs:check      # Check documentation
devenv shell docs:update     # Update shared docs
```

### Managing the environment

```bash
devenv test                  # Enter the shell (sets up env + hooks)
devenv update                # Update flake inputs
devenv gc                    # Garbage collect old generations
```

### Running processes

```bash
devenv up                    # Start all processes (postgres, redis, etc.)
devenv processes status      # Check running processes
```

## When scripts aren't on PATH

Some devenv configurations set `enterShell` to add scripts to PATH via:

```nix
enterShell = ''
  export PATH="$DEVENV_ROOT/scripts:$PATH"
'';
```

In those cases, scripts may be available directly inside `devenv test`. Outside the shell, always
use `devenv shell <script-name>`.

## Script naming conventions

The user's preferred `devenv.nix` layout uses colon-separated namespaced scripts:

- `build:*` — build tasks
- `test:*` — test tasks
- `lint:*` — lint and check tasks
- `fix:*` — autofix tasks
- `install:*` — dependency installation tasks
- `update:*` — update tasks
- `docs:*` — documentation tasks
- `coverage:*` — coverage tasks
- `snapshot:*` — snapshot update/review tasks
- `setup:*` — editor/tool setup tasks
- `clean:*` — cleanup tasks
- `deny:check` — security/license checks
- `publish:check` — publication dry-run checks

## See also

For the recommended `devenv.nix` layout, script structure, and git-hooks configuration, see
[REFERENCE.md](REFERENCE.md).

Related Skills

write-a-skill

15
from ifiokjr/oh-pi

Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.

web-search

15
from ifiokjr/oh-pi

Web search via DuckDuckGo. Use when the user needs to look up current information online.

web-fetch

15
from ifiokjr/oh-pi

Fetch a web page and extract readable text content. Use when user needs to retrieve or read a web page.

rust-workspace-bootstrap

15
from ifiokjr/oh-pi

Scaffold a production-ready Rust workspace with knope changesets, devenv, and GitHub Actions CI/release workflows. Use when starting a new Rust project or monorepo.

request-refactor-plan

15
from ifiokjr/oh-pi

Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.

quick-setup

15
from ifiokjr/oh-pi

Detect project type and generate .pi/ configuration. Use when setting up pi for a new project or when user asks to initialize pi config.

pwsh

15
from ifiokjr/oh-pi

PowerShell syntax reference — cmdlets, objects, pipelines, filtering, comparison operators, and Bash-to-PowerShell command equivalents

nushell

15
from ifiokjr/oh-pi

Nushell syntax reference for shell commands — variables, pipelines, tables, custom commands, control flow, Bash-to-Nu equivalents, and common gotchas

neubrutalism

15
from ifiokjr/oh-pi

Neubrutalism design system skill. Use when building bold UI with thick borders, offset solid shadows, high saturation colors, and minimal border radius.

liquid-glass

15
from ifiokjr/oh-pi

Apple Liquid Glass design system. Use when building UI with translucent, depth-aware glass morphism following Apple's design language. Provides CSS tokens, component patterns, dark/light mode, and animation specs.

improve-codebase-architecture

15
from ifiokjr/oh-pi

Explore a codebase to find opportunities for architectural improvement, focusing on making the codebase more testable by deepening shallow modules. Use when user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more AI-navigable.

grill-me

15
from ifiokjr/oh-pi

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".