Skip to content
Agentmart
Submit a tool

gondolin-exec

Run commands in an isolated, disposable Linux VM using Gondolin CLI.

Skill by skuridin

IndexedApache-2.0
Write a review

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.

We use your email only for this newsletter. Privacy

About

Run commands in an isolated, disposable Linux VM using Gondolin CLI. Use when testing untrusted code, running installations, or needing a clean isolated environment.

Use cases: testing

No 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

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from skuridin

Cite this page

gondolin-exec skill. Agent Mart. https://agentmart.dev/skills/skuridin-gondolin-exec (last updated 2026-10-24)