> Documentation index: https://docs.kiste.run/llms.txt, a list of every page in this documentation.

# kiste forward

> Forward a local TCP port to the Kiste until interrupted.

```text
kiste forward [OPTIONS] [PORTS]...
```

| Argument | Description |
| --- | --- |
| `[PORTS...]` | LOCAL_PORT GUEST_PORT, or a Kiste name followed by PORT or LOCAL:GUEST pairs. |

| Option | Description |
| --- | --- |
| `--name NAME` | Kiste name, `current`, or `self`. Omit to use the current selection. |
| `--local PORT` | Local port to bind. Defaults to --remote. |
| `--remote PORT`, `--guest PORT` | Port inside the Kiste. |
| `--background`, `-b` | Detach after OpenSSH confirms the listener is active. |
| `--stop` | Stop these background forwards instead of starting them. |

**Examples**

```text
kiste forward 8080 3000
kiste forward --name build --remote 3000 --local 8080
kiste forward --remote 3000 --background
kiste forward build 3000 8080:80
kiste forward build 8080:80 --stop   End a background forward
```

Background forwards run in this computer's shared connection to the Kiste; they end with --stop, `kiste logout`, or when the Kiste stops.

Global options such as `--json` work with every command; see [the CLI overview](https://docs.kiste.run/cli.md#global-options).

## Related topics

- [Overview](https://docs.kiste.run/cli.md)
- [Output modes and exit codes](https://docs.kiste.run/cli/output.md)
- [Configuration and environment](https://docs.kiste.run/cli/configuration.md)
- [kiste login](https://docs.kiste.run/cli/login.md)
- [kiste logout](https://docs.kiste.run/cli/logout.md)
- [kiste whoami](https://docs.kiste.run/cli/whoami.md)
- [kiste account](https://docs.kiste.run/cli/account.md)
- [kiste new](https://docs.kiste.run/cli/new.md)
- [kiste credentials](https://docs.kiste.run/cli/credentials.md)
- [kiste ssh](https://docs.kiste.run/cli/ssh.md)
- [kiste ssh-config](https://docs.kiste.run/cli/ssh-config.md)
- [kiste exec](https://docs.kiste.run/cli/exec.md)
- [kiste prompt](https://docs.kiste.run/cli/prompt.md)
- [kiste cancel](https://docs.kiste.run/cli/cancel.md)
- [kiste interrupt](https://docs.kiste.run/cli/interrupt.md)
- [kiste command](https://docs.kiste.run/cli/command.md)
- [kiste commands](https://docs.kiste.run/cli/commands.md)
- [kiste desktop](https://docs.kiste.run/cli/desktop.md)
- [kiste list](https://docs.kiste.run/cli/list.md)
- [kiste status](https://docs.kiste.run/cli/status.md)
- [kiste current](https://docs.kiste.run/cli/current.md)
- [kiste watch](https://docs.kiste.run/cli/watch.md)
- [kiste events](https://docs.kiste.run/cli/events.md)
- [kiste stop](https://docs.kiste.run/cli/stop.md)
- [kiste restart](https://docs.kiste.run/cli/restart.md)
- [kiste rename](https://docs.kiste.run/cli/rename.md)
- [kiste update](https://docs.kiste.run/cli/update.md)
- [kiste resume](https://docs.kiste.run/cli/resume.md)
- [kiste extend](https://docs.kiste.run/cli/extend.md)
- [kiste fork](https://docs.kiste.run/cli/fork.md)
- [kiste scp](https://docs.kiste.run/cli/scp.md)
- [kiste delete](https://docs.kiste.run/cli/delete.md)
- [kiste logs](https://docs.kiste.run/cli/logs.md)
- [kiste image](https://docs.kiste.run/cli/image.md)
- [kiste snapshot](https://docs.kiste.run/cli/snapshot.md)
- [kiste environment](https://docs.kiste.run/cli/environment.md)
- [kiste stream](https://docs.kiste.run/cli/stream.md)
- [kiste auth](https://docs.kiste.run/cli/auth.md)
- [kiste devices](https://docs.kiste.run/cli/devices.md)
- [kiste config](https://docs.kiste.run/cli/config.md)
- [kiste completions](https://docs.kiste.run/cli/completions.md)
- [kiste self-update](https://docs.kiste.run/cli/self-update.md)
- [kiste limits](https://docs.kiste.run/cli/limits.md)
- [kiste doctor](https://docs.kiste.run/cli/doctor.md)
- Previous: [kiste scp](https://docs.kiste.run/cli/scp.md)
- Next: [kiste delete](https://docs.kiste.run/cli/delete.md)
