Agent skill

Run Dozzle Dev Instance

by amir20 in amir20/dozzle

Starts a Dozzle dev server on a port derived from the current worktree so you can test by hand in a browser, without disturbing instances started elsewhere.

MITAuto-check passedDevelopment

Install Run Dozzle Dev Instance

skills CLI
$ npx skills add amir20/dozzle --skill run-dev-instance -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install amir20/dozzle run-dev-instance --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/amir20/dozzle.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/run-dev-instance .claude/skills/run-dev-instance && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
run-dev-instance
GitHub stars
15k
Token cost
~747 tokens
SKILL.md length
334 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Starts a Dozzle dev server on a port derived from the current worktree so you can test by hand in a browser, without disturbing instances started elsewhere.

  • Testing a Dozzle UI change by hand in a browser
  • SKILL.md covers Start one, Overriding, While testing and Stop it
  • Calls make, bun and go
  • Running dev servers for several worktrees at once without port clashes

What it does

The skill starts a Dozzle instance you can click through in a browser, on a port that depends on the current worktree. Ports come from `scripts/dev-ports.mjs`, which hashes the checkout path and walks forward until a port is free, so each worktree always gets the same URL and two never collide. The warning is never to assume port 3100 is yours, because it probably belongs to another worktree and killing it ends someone else's session.

`make dev-auto` runs air and vite with hot reload and prints the URL first; the agent runs it in the background and waits for the port with a curl loop instead of a fixed sleep. For a one-shot check, a production build is steadier. `DOZZLE_PORT`, `VITE_PORT` and `AGENT_PORT` override the three ports. While testing, the agent looks at locally running containers, drives the UI with the Chrome extension or Playwright (the only way to fake a broken clipboard or an offline stream), watches the console throughout, and on exit kills only the process on its own port.

When your agent uses it

  • Testing a Dozzle UI change by hand in a browser
  • Running dev servers for several worktrees at once without port clashes
  • Taking screenshots or scripted Playwright runs against a local Dozzle

Example prompts

  • “Start a dev instance of Dozzle for this worktree and tell me the URL.”
  • “Run the production build on this worktree's port and click through the container list.”
  • “Test the new log filter in the browser and watch the console for errors the whole time.”

Requirements

  • A Dozzle checkout with make, Bun and Go
  • Containers running locally to inspect (docker ps)

What it can do on your machine

Read from SKILL.md and the folder at commit 636e38a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • make
    • bun
    • go
    • docker

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Run Dozzle Dev Instance loads about 747 tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 334 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~83
When it runs · the whole SKILL.md, loaded when a task matches
~747

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from amir20/dozzle at commit 636e38a, republished under its MIT licence (© amir20). 334 words, ~747 tokens.

Download SKILL.mdSave it as .claude/skills/run-dev-instance/SKILL.md (or your agent's skills folder).
name
run-dev-instance
description
Use when Dozzle needs to be running in a browser to test a change by hand (clicking the UI, screenshots, driving it with Chrome or Playwright). Starts an instance on a free port derived from this worktree, so several worktrees can each have one at the same time, and never disturbs an instance someone else started.

Run a Dozzle instance for testing

Several worktrees are usually checked out at once and more than one of them may already be serving. Never assume 3100 is yours — it almost certainly belongs to another worktree, and killing it kills someone else's session.

Start one

bash
make dev-auto   # backgrounded; see below

It prints the URL before anything else:

▸ dozzle dev on http://localhost:3356 (vite 5502, agent 7136)

The ports come from scripts/dev-ports.mjs, hashed from this checkout's path and then walked forward until free, so this worktree always gets the same URL and two worktrees never land on the same one. To know the URL without starting anything:

bash
bun scripts/dev-ports.mjs --json

Run it in the background and wait for the port rather than a fixed sleep:

bash
PORT=$(bun scripts/dev-ports.mjs --json | grep -o '"DOZZLE_PORT": [0-9]*' | grep -o '[0-9]*')
# start make dev-auto with run_in_background, then:
until curl -sf -o /dev/null http://localhost:$PORT/; do sleep 1; done

make dev-auto is air + vite with hot reload, which is what you want while iterating on a change. For a one-shot check of already-written code, a production build is steadier and has no vite half:

bash
bun run build && LIVE_FS=true go run . --level info --addr localhost:$PORT

Overriding

DOZZLE_PORT, VITE_PORT and AGENT_PORT override any of the three, for make dev, make dev-auto, bun run preview and bun run agent:dev alike. Plain make dev still uses 3100/5173/7007, which is what a human starting one by hand expects, and is deliberately outside the auto-assigned ranges.

The Go server tells the dev page where Vite lives (viteDevURL() in internal/web/index.go, read by public/index.html), so VITE_PORT is all that needs setting — there is no hardcoded 5173 left.

While testing

  • Containers to look at: whatever is running locally (docker ps). No need to start any.
  • Drive it with the Chrome extension (mcp__claude-in-chrome__*) when the user wants to watch, or with Playwright (node_modules/playwright, browsers already cached) for anything scripted or repeatable. Playwright is also the only way to fake a broken clipboard, a missing API, or an offline stream.
  • Watch the console for errors the whole way through, not just at the end.

Stop it

Kill only the process you started (the background task, or the PID on your port):

bash
lsof -tiTCP:$PORT -sTCP:LISTEN

Leave every other port alone. If a port you wanted is taken by another worktree, the script has already moved past it — do not free it.

© amir20, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/run-dev-instance of amir20/dozzle.

Open the folder on GitHubat commit 636e38a

Compare with similar skills

Run Dozzle Dev Instance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Run Dozzle Dev Instance compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Run Dozzle Dev Instance this skillamir20/dozzle15k—~747Automated safety check: PassMIT
Redis Insight Pluginredis/RedisInsight8.9k—~3.5kAutomated safety check: PassMIT
Worktree StackLanternOps/breeze130—~1.2kAutomated safety check: NotesAGPL-3.0
Verifymorapelker/hive470—~709Automated safety check: PassMIT
Liteyuki Webui FrontendLiteyukiStudio/LiteyukiBot157—~2.5kAutomated safety check: PassCustom licence
Project Docs Maintainerswimmwatch/cloakbrowser-mcp161—~569Automated safety check: PassMIT

Similar skills

  • Redis Insight Plugin

    redis/RedisInsight

    Official

    A skill your agent uses when creating, modifying, debugging, deploying, or testing Redis Insight Workbench visualization plugins, plugin manifests, package.json visualizations, activationMethod…

    8.9k GitHub stars~3.5k tokensUpdated 2 days ago
    DatabasesAuto-check passed
  • Worktree Stack

    LanternOps/breeze

    A skill your agent uses when an agent needs a running, seeded, Playwright-ready Breeze stack for the current git worktree.

    130 GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check: notes
  • Verify

    morapelker/hive

    Build, launch, and drive this worktree's Hive app over CDP to verify a change end-to-end with playwright-cli

    470 GitHub stars~709 tokensUpdated 7 days ago
    Testing & QAAuto-check passed
  • Liteyuki Webui Frontend

    LiteyukiStudio/LiteyukiBot

    Build, review, or test LiteyukiBot v7's React/Vite WebUI under webui/ and its packaged static delivery in packages/webui/.

    157 GitHub stars~2.5k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Project Docs Maintainer

    swimmwatch/cloakbrowser-mcp

    Maintain, organize, consolidate, or audit the cloakbrowser-mcp documentation set only when the user explicitly requests project documentation maintenance or an authorized public change requires it.

    161 GitHub stars~569 tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Verify

    perminder-klair/subwave

    Drive a controller/admin-UI change end-to-end from a worktree without touching the live station — isolated controller on a spare port + temp STATEDIR, worktree Next dev server, Playwright against…

    1.4k GitHub stars~451 tokensUpdated today
    Testing & QAAuto-check passed

More from amir20/dozzle

  • Adds a bundled app icon to Dozzle for container images that show no logo or resolve to the wrong one, including conversion and alias entries.

    15k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Regenerates Playwright visual snapshots for Dozzle after an intentional UI change, running them through Docker Compose so filenames match the Linux CI platform.

    15k GitHub stars~797 tokensUpdated today
    Auto-check passed

Questions about Run Dozzle Dev Instance

What does Run Dozzle Dev Instance do?

Starts a Dozzle dev server on a port derived from the current worktree so you can test by hand in a browser, without disturbing instances started elsewhere. The skill starts a Dozzle instance you can click through in a browser, on a port that depends on the current worktree.mjs`, which hashes the checkout path and walks forward until a port is free, so each worktree always gets the same URL and two never collide.

When should I use Run Dozzle Dev Instance?

Run Dozzle Dev Instance fits situations like: testing a Dozzle UI change by hand in a browser; running dev servers for several worktrees at once without port clashes; taking screenshots or scripted Playwright runs against a local Dozzle.

How do I install Run Dozzle Dev Instance in Claude Code?

Run `npx skills add amir20/dozzle --skill run-dev-instance -a claude-code`. Or copy the skill folder (.claude/skills/run-dev-instance in amir20/dozzle) into .claude/skills/run-dev-instance in your project. Claude Code loads it when a task matches its description.

How do I install Run Dozzle Dev Instance in Codex?

Run `npx skills add amir20/dozzle --skill run-dev-instance -a codex`. Or copy the skill folder (.claude/skills/run-dev-instance in amir20/dozzle) into .agents/skills/run-dev-instance in your project. Codex loads it when a task matches its description.

Can I use Run Dozzle Dev Instance in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add amir20/dozzle --skill run-dev-instance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run-dev-instance, .gemini/skills/run-dev-instance, .github/skills/run-dev-instance and .opencode/skills/run-dev-instance in your project.

What does Run Dozzle Dev Instance need to run?

Going by SKILL.md and its folder, Run Dozzle Dev Instance needs the command-line tools its instructions call (make, bun, go and docker). Our summary lists: A Dozzle checkout with make, Bun and Go; Containers running locally to inspect (docker ps).

Does Run Dozzle Dev Instance access the network?

SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Run Dozzle Dev Instance safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Run Dozzle Dev Instance use?

Run Dozzle Dev Instance is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Run Dozzle Dev Instance use?

About 747 tokens (SKILL.md is roughly 3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Run Dozzle Dev Instance?

Skills that share tags, products or a category with Run Dozzle Dev Instance: Redis Insight Plugin (redis/RedisInsight, 8.9k stars), Worktree Stack (LanternOps/breeze, 130 stars), Verify (morapelker/hive, 470 stars) and Liteyuki Webui Frontend (LiteyukiStudio/LiteyukiBot, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Run Dozzle Dev Instance?

amir20 (a GitHub user) maintains it in amir20/dozzle, which has 14,569 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.

Source: amir20/dozzle on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.