Run Dev Instance logo

Run Dev Instance

CommunityPopular
amir20
run-dev-instance

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.

Overview

Publisheramir20
Repositorydozzle
Skill namerun-dev-instance
Stars
14.6K
Forks
634
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by amir20 on GitHub. Read the source before you install it.

Installation

Install the Run Dev Instance AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/amir20/dozzle/tree/main/.claude/skills/run-dev-instance
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/amir20/dozzle.git /tmp/dozzle
mkdir -p .claude/skills
cp -r /tmp/dozzle/.claude/skills/run-dev-instance .claude/skills/run-dev-instance
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Run Dev Instance in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Run Dev Instance on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Run Dev Instance is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

Frequently asked questions

What does the Run Dev Instance AI skill do?

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.

Why use Run Dev Instance on TypingMind?

Because you install it once and use it with any model. Run Dev Instance is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Run Dev Instance in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/amir20/dozzle/tree/main/.claude/skills/run-dev-instance. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Run Dev Instance?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Run Dev Instance?

As many as you like. As long as a model supports skills, you can use Run Dev Instance with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Run Dev Instance AI skill free?

Yes. It is published on GitHub by amir20 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇