A Deno-based development environment manager.
Setting up a new development machine is painful. You spend hours—sometimes days—installing tools, copying dotfiles, configuring editors, and chasing down missing dependencies. Even then, something's always slightly off. Your new machine never quite feels like your old one.
And when you need to set up a second machine? You do it all over again, forgetting half the steps.
Clone this repo. Run one command. Done. (Ubuntu only)
git clone <repo-url> ~/git/dev-env
cd ~/git/dev-env
# Install all tools for your stack
deno task run -s larr # or: deno task run -s primeagen
# Sync all configs
deno task sync -s larr # or: deno task sync -s primeagenEvery tool installed. Every config in place. Every machine identical.
Available stacks:
larr- Modern development stack (39 tasks)primeagen- ThePrimeagen-inspired stack (29 tasks)
- Reproducible environments — Same setup on any machine, every time
- Encrypted secrets — API keys and SSH keys stored safely in git
- Dry-run mode — Preview changes before making them
- Diff mode — See exactly what will change before applying
- Smart skipping — Skips unchanged files automatically
- Auto-discovery — Drop a task file, it just works
- Full ownership — TypeScript you can read and modify, not magic you don't understand
# Preview what will be installed (safe, makes no changes)
deno task run -s larr --dry
# See what files would change
deno task run -s larr --diff
# Run specific tasks
deno task run -s larr rust neovim docker
# Sync dotfiles and configs
deno task sync -s larr
# Test a task in Docker (for development)
make test STACK=larr TASK=zshTasks common to both stacks:
| Task | Description |
|---|---|
rust |
Rust toolchain via rustup |
docker |
Docker and docker-compose |
neovim |
Neovim editor |
zsh |
Zsh with plugins |
tmux |
Tmux terminal multiplexer |
volta |
JavaScript toolchain manager |
sops |
SOPS + age for secrets |
dotenvx |
dotenvx for API tokens |
gitleaks |
Secret scanning |
ghostty |
Ghostty terminal emulator |
See task-discovery.md for complete task lists.
Secrets are encrypted and safe to commit:
# Install encryption tools
deno task run -s <stack> sops dotenvx gitleaks git-hooks
# API tokens (dotenvx)
cp .env.example .env
# Add your keys, then encrypt
dotenvx encrypt
# SSH keys (SOPS + age)
sops stacks/<stack>/secrets/ssh.enc.yaml
deno task run -s <stack> secretsSee Managing Secrets for details.
Full documentation in docs/:
- Tutorials — Getting started, first task, customizing configs
- How-to Guides — Add packages, manage secrets, test locally
- Reference — CLI commands, utilities, interfaces
- Explanation — Design rationale, philosophy
- Productivity over aesthetics — Every decision optimizes for getting work done
- Ownership over complexity — Code you understand beats tools you don't
- Reproducibility — Clone and run, no day of patching holes
- Tool mastery compounds — Understanding your tools pays dividends over a career
MIT