Skip to content
Back to skills

Linux Dev Workstation

DSecurity

Configure a senior-grade Linux development environment on the machine: GPU drivers and compute stacks (NVIDIA CUDA, AMD ROCm, Intel XPU, Apple Silicon/Asahi), shell and terminal (zsh/fish, starship, modern CLI tools, tmux/zellij), advanced editor setup (Neovim/Vim, VS Code, Zed), language toolchains for Rust, Python, Ruby, and JavaScript/TypeScript via mise/uv/pixi, Docker/Podman containers, reproducible declarative setup (chezmoi, Ansible, Nix/home-manager), and security hardening (SSH keys,...

  • 15 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
ai-agentsjavascripttypescriptpythonrustgojavarubyshellbashnode

Works with

  • terminal
  • cli
  • mcp

Security analysis

D42/100
  • criticalPipes output to a shell interpreter
  • mediumUses curl or wget to download content
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro scans all 16 files and shows the line behind each finding

Scanned September 3, 2026

npx -y skills add opensite-ai/opensite-skills --skill linux-dev-workstation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Linux Dev Workstation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Linux Dev Workstation
[![Security: D — Skills Directory](https://www.skillsdirectory.com/api/skills/opensite-ai-linux-dev-workstation/badge)](https://www.skillsdirectory.com/skills/opensite-ai-linux-dev-workstation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: linux-dev-workstation
description: >
  Configure a senior-grade Linux development environment on the machine: GPU
  drivers and compute stacks (NVIDIA CUDA, AMD ROCm, Intel XPU, Apple
  Silicon/Asahi), shell and terminal (zsh/fish, starship, modern CLI tools,
  tmux/zellij), advanced editor setup (Neovim/Vim, VS Code, Zed), language
  toolchains for Rust, Python, Ruby, and JavaScript/TypeScript via mise/uv/pixi,
  Docker/Podman containers, reproducible declarative setup (chezmoi, Ansible,
  Nix/home-manager), and security hardening (SSH keys, commit signing, secrets,
  firewall, backups). Use when setting up or upgrading a Linux dev box,
  installing GPU drivers, managing language versions and updates, configuring
  editors or dotfiles, or making a workstation reproducible. It runs commands on
  the machine.
license: MIT
compatibility: >
  Runs on the target Linux machine and needs shell access plus the distro's
  package manager (apt/dnf/pacman/etc.). Some steps need sudo. A web search tool
  is recommended to verify current driver, toolchain, and package versions.
metadata:
  opensite-category: setup
  opensite-scope: shared
  opensite-visibility: public
---

# Linux Dev Workstation

Configure a senior-grade Linux development environment directly on the machine —
GPU drivers, shell, editors, language toolchains, containers, reproducibility,
and security.

> **Mode: Configurator — this skill runs commands on the machine.** Follow the
> SAFETY PROTOCOL below on every stage.

## ⚠️ SAFETY PROTOCOL (read first, applies to every step)

1. **Detect first.** Never assume the distro, package manager, GPU vendor, or
   desktop. Run the detection step and branch from what you find.
2. **Make steps idempotent.** Prefer commands that are safe to re-run
   (`mise use`, `apt install`, checking "already installed" before acting).
3. **Verify after each stage.** Every stage below states a verify command. Run
   it and confirm success before moving on.
4. **Confirm before destructive/irreversible actions.** Require an explicit
   user "yes" before: disk/partition ops, driver swaps or removals, blacklisting
   kernel modules, firewall enable/rule changes (risk of locking out SSH),
   `chsh` (default-shell change), and any `rm`. State exactly what will change
   and how to undo it.
5. **Never paste secrets into the shell history or logs.** Use the secrets tools
   in [security-hardening.md](references/security-hardening.md).
6. **Currency guardrail.** Embedded version numbers are labeled
   "as of 2026-07 — verify." Verify current driver, toolchain, and package
   versions with a web search before installing.

## Skill Resources

References (load on demand for copy-pasteable depth):

- [references/activation.md](references/activation.md) — when to use this skill vs siblings.
- [references/gpu-drivers.md](references/gpu-drivers.md) — NVIDIA/AMD/Intel/Apple/CPU per-distro install + verify.
- [references/shell-terminal.md](references/shell-terminal.md) — zsh/fish, starship, modern CLI, terminals, tmux/Zellij.
- [references/editors.md](references/editors.md) — Neovim/Vim, VS Code, Zed advanced config.
- [references/language-toolchains.md](references/language-toolchains.md) — Rust/Python/Ruby/JS-TS install, pin, update, LSP.
- [references/containers.md](references/containers.md) — Docker, Podman rootless, Compose, devcontainers.
- [references/reproducibility.md](references/reproducibility.md) — chezmoi, Ansible, Nix/home-manager, decision matrix.
- [references/security-hardening.md](references/security-hardening.md) — SSH keys, commit signing, secrets, firewall, backups.

Templates:

- [templates/mise.toml](templates/mise.toml) — pins Rust/Python/Ruby/Node for a project.
- [templates/chezmoi-layout.md](templates/chezmoi-layout.md) — dotfiles repo layout.
- [templates/ansible-workstation.yml](templates/ansible-workstation.yml) — workstation provisioning playbook.
- [templates/tmux.conf](templates/tmux.conf) — senior tmux defaults.
- [templates/devcontainer.json](templates/devcontainer.json) — Dev Container sample.

Example:

- [examples/fresh-ubuntu-to-senior-devbox.md](examples/fresh-ubuntu-to-senior-devbox.md) — worked transcript.

## Step 1 — Detection (always first)

Gather the facts that drive every branch. Do not edit anything yet.

```bash
# Distro + package manager
. /etc/os-release && echo "$PRETTY_NAME"
command -v apt dnf pacman zypper 2>/dev/null   # which package manager

# GPU vendor(s)
lspci | grep -Ei 'vga|3d|display'

# Desktop session type (Wayland vs X11) and form factor
echo "$XDG_SESSION_TYPE"
ls /sys/class/power_supply/ | grep -qi bat && echo "laptop" || echo "desktop"

# Kernel + Secure Boot state (affects out-of-tree driver signing)
uname -r
mokutil --sb-state 2>/dev/null || echo "Secure Boot state unknown"
```

Record: distro/package manager, GPU vendor(s), Wayland/X11, laptop/desktop,
Secure Boot on/off. Every later stage branches on these.

## Step 2 — Ordered bring-up

Run in order; each stage is idempotent and ends with a verify command. Confirm
the verify passes before continuing.

| # | Stage | Reference | Verify command |
|---|-------|-----------|----------------|
| 1 | GPU drivers + compute | [gpu-drivers.md](references/gpu-drivers.md) | `nvidia-smi` / `rocm-smi` / `xpu-smi discovery` / `glxinfo -B` |
| 2 | Shell + terminal | [shell-terminal.md](references/shell-terminal.md) | `echo $SHELL`; `starship --version`; `rg --version` |
| 3 | Editors | [editors.md](references/editors.md) | `nvim --version`; `code --version`; `zed --version` |
| 4 | Language toolchains | [language-toolchains.md](references/language-toolchains.md) | `mise ls`; `rustc -V`; `uv --version`; `ruby -v`; `node -v` |
| 5 | Containers | [containers.md](references/containers.md) | `docker run --rm hello-world` or `podman run --rm hello-world` |
| 6 | Reproducibility | [reproducibility.md](references/reproducibility.md) | `chezmoi doctor`; `ansible --version` |
| 7 | Security hardening | [security-hardening.md](references/security-hardening.md) | `ssh-add -l`; `sudo ufw status` / `firewall-cmd --state` |

**Driver stage is the only one that is potentially destructive** (module
blacklist, DKMS, Secure Boot MOK enrollment, reboot). Treat it under the SAFETY
PROTOCOL: confirm before acting, keep X11 as a fallback, verify with `nvidia-smi`
before rebooting into a possibly-black-screen session.

After stage 7, **hand off to the `linux-ai-dev-stack` skill** for local LLM
inference, AI coding agents, MCP servers, ML frameworks, and remote GPU. This
skill only builds the base; the AI toolchain lives there and assumes the working
driver stack you just installed.

## Language toolchains quick map

Use `mise` as the meta version-manager for everything except Rust (rustup) and
Python (let `uv` own Python + envs). Full depth, LSP, and linters are in
[language-toolchains.md](references/language-toolchains.md).
Versions as of 2026-07 — verify.

| Language | Manager | Install | Per-project pin | Update |
|----------|---------|---------|-----------------|--------|
| Rust | rustup | `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh` | `rust-toolchain.toml` or `mise.toml` | `rustup update` |
| Python | uv | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | `uv python pin 3.13` + `uv.lock` | `uv self update`; `uv lock --upgrade` |
| Ruby | mise | `mise use ruby@3.4` | `.tool-versions` / `mise.toml` | `mise upgrade ruby`; `bundle update` |
| Node/TS | mise | `mise use node@lts` | `.tool-versions` / `mise.toml` | `mise upgrade node`; `pnpm up` |
| (meta) | mise | `curl https://mise.run \| sh` | `mise.toml` (see template) | `mise self-update`; `mise upgrade` |

## Reproducibility decision (pick one backbone)

Capture the machine so the next one is one command. Detail + matrix in
[reproducibility.md](references/reproducibility.md).

- **Pragmatic senior, multiple machines** → **chezmoi + Ansible + mise/uv**
  (imperative-repeatable). One-liner: `sh -c "$(curl -fsLS https://get.chezmoi.io)" -- init --apply <github-user>`.
- **Declarative but keep your distro** → **home-manager (flakes) + direnv**.
  One-liner: install Determinate Nix, then `home-manager switch --flake .`.
- **Reproducibility/rollback purist** → **NixOS + home-manager + flakes**
  (`nixos-rebuild switch --flake .`).
- **Team parity / onboarding / CI** → **devcontainers** (see
  [templates/devcontainer.json](templates/devcontainer.json)) plus chezmoi for
  the personal layer.

## See also

- `linux-distro-selector` — if the distro is not chosen yet.
- `linux-install-planner` — if the OS is not installed yet (Windows→Linux).
- `linux-ai-dev-stack` — the AI toolchain (local LLM, agents, MCP, remote GPU);
  run it after this skill's driver stage succeeds.

Files in this skill

  • SKILL.md8.6 KB
  • agents/openai.yaml436 B
  • examples/fresh-ubuntu-to-senior-devbox.md4.6 KB
  • references/activation.md2.6 KB
  • references/containers.md3.7 KB
  • references/editors.md4.3 KB
  • references/gpu-drivers.md15.2 KB
  • references/language-toolchains.md8.5 KB
  • references/reproducibility.md4.3 KB
  • references/security-hardening.md4.8 KB
  • references/shell-terminal.md5 KB
  • templates/ansible-workstation.yml2.5 KB
  • templates/chezmoi-layout.md2.6 KB
  • templates/devcontainer.json1.1 KB
  • templates/mise.toml1.2 KB
  • templates/tmux.conf2.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.