agentleFS
witi-projectswiti-projects/Skills/finding-dev-server-url/SKILL.md

finding-dev-server-url

Skill2 starsChanged 6 months agoMITView on GitHub

Scan running terminals for dev server URLs (localhost ports), report them, and optionally open the app in Cursor's built-in browser. Use when the user says "/finding-dev-server-url", "finding dev server url", or asks about finding dev server url.

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the first ~10 lines of each terminal file to see:

    line 31
  2. Distinctive:

    Read the full content of terminals that look like they're running a server.

    line 40
  3. Distinctive:

    If no servers are found, say so and suggest starting one.

    line 79
  4. Distinctive:

    If the user wants to view the app, use Cursor's built-in browser:

    line 83
  5. Distinctive:

    If multiple servers are found, ask the user which one to open

    line 97
  6. Very specific:

    If a terminal shows an error (e.g.

    line 98
  7. Very specific:

    If the server crashed (process exited), note that too — check for exit_code in the terminal file footer

    line 99

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Finding Dev Server URL

Detect which dev servers are running, what ports they're on, and open them.

How It Works

Cursor stores live terminal output in text files. Each terminal has a file at:

<terminals_folder>/<id>.txt

The terminals folder path is provided in your system context. Each file contains metadata (pid, cwd, last command) followed by the full terminal output.

Workflow

1. List All Terminals

ls <terminals_folder>/*.txt

2. Read Each Terminal's Metadata

Read the first ~10 lines of each terminal file to see:

  • pid — process ID
  • cwd — working directory
  • last_command — what's running (e.g. npm run dev, pnpm dev, python manage.py runserver)

Skip terminals where the last command is clearly not a server (e.g. git status, ls, cd).

3. Scan for Server URLs

Read the full content of terminals that look like they're running a server. Search for these patterns:

FrameworkPattern
Next.jsLocal: http://localhost:XXXX or ▲ Ready
ViteLocal: http://localhost:XXXX/
Create React AppLocal: http://localhost:XXXX
Expresslistening on port XXXX or listening at http://...
DjangoStarting development server at http://127.0.0.1:XXXX/
RailsListening on http://127.0.0.1:XXXX
FlaskRunning on http://127.0.0.1:XXXX
GoListening on :XXXX or http server started on :XXXX
PHPDevelopment Server (http://localhost:XXXX) started
Remixhttp://localhost:XXXX
Astrohttp://localhost:XXXX
Nuxthttp://localhost:XXXX

Regex to match most server output:

https?://(localhost|127\.0\.0\.1|0\.0\.0\.0)(:\d+)

Also check for standalone port patterns:

(listening|started|running|ready|serving).*(port\s*|:)\s*(\d{4,5})

4. Report

Print a summary:

Dev servers found:
  Terminal 1 (pid 12345) — npm run dev → http://localhost:3000 (cwd: /Users/me/app)
  Terminal 3 (pid 67890) — python manage.py runserver → http://127.0.0.1:8000 (cwd: /Users/me/api)

If no servers are found, say so and suggest starting one.

5. Open in Browser (Optional)

If the user wants to view the app, use Cursor's built-in browser:

browser_navigate → http://localhost:<port>

Then take a screenshot to confirm it's rendering:

browser_take_screenshot

Tips

  • If multiple servers are found, ask the user which one to open
  • If a terminal shows an error (e.g. EADDRINUSE, address already in use), report the conflict
  • If the server crashed (process exited), note that too — check for exit_code in the terminal file footer
  • Common default ports: Next.js (3000), Vite (5173), Django (8000), Rails (3000), Flask (5000), Go (8080)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.