gondolin-exec
Run commands in an isolated, disposable Linux VM using Gondolin CLI.
Skill by skuridin
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/skuridin-gondolin-exec
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/gondolin-exec
What's inside
- Skill name
gondolin-exec- Description
- Run commands in an isolated, disposable Linux VM using Gondolin CLI. Use when testing untrusted code, running installations, or needing a clean isolated environment.
- License
- Apache-2.0
- Compatibility
- Requires QEMU (or libkrun) and Node.js >= 18. Works on macOS and Linux.
- Instructions
- 378 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Gondolin Exec Skill Use Gondolin to run commands in a disposable Linux micro-VM. The VM is isolated from the host network and filesystem by default. ## When to Use - Running untrusted or agent-generated code safely - Testing software installations without polluting your system - Isolated build/test environments - Any task where you want a clean, temporary Linux environment ## Commands Overview | Command | Purpose | |---------|---------| | `exec` | Run a command in a fresh disposable VM | | `bash` | Start an interactive shell session | | `list` | List running VM sessions | | `attach` | Attach to a running VM session | | `snapshot` | Snapshot a running VM and stop it | | `image` | Manage local image refs (ls, pull, tag, inspect) | ## Quick Start ```bash # Run a simple command pnpx @earendil-works/gondolin exec -- uname -a # Start an interactive shell pnpx @earendil-works/gondolin bash # Mount project and run commands pnpx @earendil-works/gondolin exec --mount-hostfs "$PWD:/workspace" -- sh -lc 'cd /workspace && npm test' ``` ## Core Concepts ### The VM is Disposable Each `gondolin exec` creates a fresh VM, runs your command, and tears down. Changes don't persist unless you mount host directories. Use `bash` for persistent interactive sessions. ### Network Access is OPEN by Default - HTTP/HTTPS traffic is allowed by default (no restriction) - Use `--allow-host` to restrict to specific hosts - Internal ranges (localhost, 10.x, 192.168.x) are blocked - DNS is synthetic by default (no upstream DNS) - This is a security feature - the host mediates all traffic ### Secrets Never Enter the VM This is Gondolin's key security feature. Use `--host-secret` to inject credentials that the guest can use but never see. ## Exec Command Run a command in a fresh disposable VM. ```bash gondolin exec [options] -- CMD [ARGS...] ``` ### Options **VFS Options:** - `--mount-hostfs HOST:GUEST[:ro]` - Mount host directory (append `:ro` for read-only) - `--mount-memfs PATH` - Create memory-backed mount - `--image IMAGE` - Guest image selector (asset dir, build id, or name:tag) - `--vmm BACKEND` - VM backend: `qemu` (default) or `krun` **Network Options:** - `--allow-host HOST` - Allow HTTP requests to host (repeatable) - `--host-secret NAME@HOST[,HOST...][=VALUE]` - Add secret for specified hosts - `--dns MODE` - DNS mode: `synthetic` (default), `trusted`, or `open` - `--dns-trusted-server IP` - Trusted resolver IPv4 (trusted mode) - `--tcp-map SPEC` - Map guest HOST[:PORT] to upstream HOST:PORT (`GUEST_HOST[:PORT]=UPSTREAM_HOST:PORT`) - `--ssh-allow-host HOST[:PORT]` - Allow outbound SSH (default port 22) - `--ssh-agent [SOCK]` - Use ssh-agent for host-side SSH auth - `--ssh-known-hosts PATH` - OpenSSH known_hosts file for upstream verification - `--ssh-credential SPEC` - Host-side SSH key (`HOST[:PORT]=PATH` or `USER@HOST[:PORT]=PATH`) - `--disable-websockets` - Disable WebSocket upgrades **Other:** - `--env KEY=VALUE` - Set environment variable (repeatable, for non-secrets) - `--cwd PATH` - Set working directory ## Bash Command Start an interactive shell session in a VM. Press `Ctrl-]` to detach. ```bash gondolin bash [options] [-- COMMAND [ARGS...]] ``` Supports all `exec` options plus: - `--resume ID_OR_PATH` - Resume from a snapshot ID or .qcow2 path - `--listen [HOST:PORT]` - Start host ingress gateway (default: 127.0.0.1:0) - `--ssh` - Enable SSH access via localhost port forward - `--ssh-user USER` - SSH username (default: root) - `--ssh-port PORT` - Local listen port (default: 0 = ephemeral) - `--ssh-listen HOST` - Local listen host (default: 127.0.0.1) ```bash # Interactive shell with project mounted gondolin bash --mount-hostfs "$PWD:/workspace" # Resume from snapshot gondolin bash --resume 4a8f2b0c gondolin bash --resume /tmp/my-snapshot.qcow2 # With ingress gateway gondolin bash --listen 127.0.0.1:3000 ``` ## List Command List active VM sessions. ```bash gondolin list [--all] ```
From skuridin/agent-stuff, Apache-2.0.
More from skuridin/agent-stuff
- 0.570score
address-review
skuridin
Handle review comments on my own pull request.
SkillAFreshness: AClaude Code +9 - 0.561score
publish-html-report
skuridin
Use this skill whenever you create or finish a standalone HTML report or presentation intended for the requester to view in a browser.
SkillAFreshness: AClaude Code +9 - 0.529score
pr-review-bot
skuridin
Unattended thermo-nuclear PR review loop.
SkillBFreshness: BClaude Code +9 - 0.526score
thermo-nuclear-pr-review
skuridin
Thermo-nuclear code quality review of a GitHub pull request.
SkillBFreshness: BClaude Code +9 - 0.474score
panel-review
skuridin
Use this skill when reviewing code, PRs, files, or directories as an expert panel; supports interactive walkthroughs and opt-in draft GitHub reviews for…
SkillCFreshness: CClaude Code +9 - 0.474score
bearcli
skuridin
Use Bear CLI to read, search, create, and safely edit Bear notes from the terminal.
SkillCFreshness: CClaude Code +9 - 0.469score
frontend-instrumented-debugging
skuridin
Use this skill when debugging hard JavaScript frontend bugs where runtime behavior is unclear, especially async flows, state gates, retries, effects…
SkillCFreshness: CClaude Code +9 - 0.455score
apple-container
skuridin
Use this skill when the user wants to work with Apple's `container` CLI for macOS — building, running, or managing lightweight Linux containers using…
SkillCFreshness: CClaude Code +9 - 0.445score
grill-me
skuridin
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
SkillCFreshness: CClaude Code +9 - 0.409score
pr-create
skuridin
Create GitHub pull requests with conventional commit titles and clear, non-technical descriptions answering what changed and why.
SkillDFreshness: DClaude Code +9 - 0.409score
functional-spec
skuridin
Write durable Functional Specifications that describe desired behavior, constraints, and acceptance criteria without coupling the document to implementation…
SkillDFreshness: DClaude Code +9 - 0.409score
vertical-slice-tracker
skuridin
Break implementation work into end-to-end vertical slices, create or update a markdown task tracker when the user asks for written planning, and keep each…
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Mar 22, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/skuridin/agent-stuff
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from skuridin
- 0.570score
address-review
skuridin
Handle review comments on my own pull request.
SkillAFreshness: AClaude Code +9 - 0.561score
publish-html-report
skuridin
Use this skill whenever you create or finish a standalone HTML report or presentation intended for the requester to view in a browser.
SkillAFreshness: AClaude Code +9 - 0.529score
pr-review-bot
skuridin
Unattended thermo-nuclear PR review loop.
SkillBFreshness: BClaude Code +9 - 0.526score
thermo-nuclear-pr-review
skuridin
Thermo-nuclear code quality review of a GitHub pull request.
SkillBFreshness: BClaude Code +9 - 0.474score
bearcli
skuridin
Use Bear CLI to read, search, create, and safely edit Bear notes from the terminal.
SkillCFreshness: CClaude Code +9 - 0.474score
panel-review
skuridin
Use this skill when reviewing code, PRs, files, or directories as an expert panel; supports interactive walkthroughs and opt-in draft GitHub reviews for…
SkillCFreshness: CClaude Code +9
Cite this page
gondolin-exec skill. Agent Mart. https://agentmart.dev/skills/skuridin-gondolin-exec (last updated 2026-10-24)