# routeup routes

> List the active routes registered with the local agent.

`routeup routes` lists every route currently registered with the local agent.

```bash
routeup routes
```

Example output:

The public URL below assumes a root-tier token allowing `*.routeup.dev`.

```txt frame="terminal" title="terminal"
routes  2 active

api.example-app
  local    https://api.example-app.localhost
  targets  / -> localhost:9080
  public   -
  process  pid 41044 | 8s
  cwd      ~/example-app

example-app
  local    https://example-app.localhost
  targets  / -> localhost:8080
  public   https://example-app.routeup.dev
  paths    all paths
  process  pid 41021 | 12s
  cwd      ~/example-app
```

Each route block shows:

- the stable local URL,
- every path target in `path -> localhost:port` form,
- the public URL and path scope when the route owner also exposes it,
- the process ID and claim age, and
- the holding process's working directory, shortened with `~` when possible.

A standalone `routeup expose` may reuse this route's targets while running under
a different process. That separate tunnel is not annotated on the local claim's
row.

## When the agent is not running

If the agent is not running, there are no active routes and the command says so.
Routes exist only while the process that registered them is alive, the agent
keeps its registry in memory, and live serve and runner owners re-assert their
claims if the agent restarts. Owners with public exposure restore that exposure
too; standalone expose owners restore only their tunnel and are not local route
rows.

Use `routeup routes --json` for automation. If the agent is not running, JSON
output is an empty array.
