Skip to content
Back to skills

Finding Dev Server Url

ASecurity

Scan running terminals for dev server URLs (localhost ports), report them, and optionally open the app in Cursor's built-in browser.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 10, 2026
developmentpythongophpbashreactnextjsexpressdjangoflaskrails

Works with

  • cursor
  • terminal
  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add 0xAidan/polymarket-bot-test --skill finding-dev-server-url --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Finding Dev Server Url?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Finding Dev Server Url
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/0xaidan-finding-dev-server-url/badge)](https://www.skillsdirectory.com/skills/0xaidan-finding-dev-server-url)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: finding-dev-server-url
description: Scan running terminals for dev server URLs (localhost ports), report them, and optionally open the app in Cursor's built-in browser.
user-invocable: true
---

# 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

```bash
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:

| Framework | Pattern |
|-----------|---------|
| Next.js | `Local: http://localhost:XXXX` or `▲ Ready` |
| Vite | `Local: http://localhost:XXXX/` |
| Create React App | `Local: http://localhost:XXXX` |
| Express | `listening on port XXXX` or `listening at http://...` |
| Django | `Starting development server at http://127.0.0.1:XXXX/` |
| Rails | `Listening on http://127.0.0.1:XXXX` |
| Flask | `Running on http://127.0.0.1:XXXX` |
| Go | `Listening on :XXXX` or `http server started on :XXXX` |
| PHP | `Development Server (http://localhost:XXXX) started` |
| Remix | `http://localhost:XXXX` |
| Astro | `http://localhost:XXXX` |
| Nuxt | `http://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)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…