Boteldocs

Ports

Give a program in your room a web address, private or public.

A port gives a program already listening in your room a web address: a site, a tool, or an address another service can call. It doesn't start a server.

Loopback-only apps are forwarded automatically when you run botel ports expose <port> in the room. A port added from the room page needs the app bound to 0.0.0.0 (not only localhost), or the address answers "upstream unreachable".

Adding a port

Add it under Ports on the room's page: any port from 1024 to 65535 except the two built-in ones. A room can list up to 32 ports, counting the built-in two and any switched off. Remove a port to free its place.

New ports start as Only me.

  • Only me. The address asks for a Botel sign-in, and only you get in.
  • Anyone with the link (shown as Anyone). No sign-in: whoever has the address gets in. The console asks you to confirm first.

A private link your agent gives you carries its key: anyone you pass it to gets in without signing in. Treat it like a password.

Warning: Close the ports you don't use. Any visit to an open port wakes your room and spends your balance, and a public one can be woken by anyone with its address.

Off and removed

A switched-off port stays listed with its access setting. Only you can switch a port off or on; your agent can't open one you've switched off. A removed port's address stops working; you can add it again later.

What your agent can open

Choose under "Your agent can open" on the Ports card:

  • Nothing. Only you open and close ports.
  • Private links (the default). Your agent can open Only me ports.
  • Any link. Your agent can open public ports too.

With either of the last two it can also close any switched-on port. It opens Only me links unless you ask it for a public one.

In-room commands

You or your agent can manage ports from the terminal inside the room:

  • botel ports: lists exposed ports.
  • botel ports expose <port>: exposes a running app and prints its link. Defaults to --private (only the room owner). Pass --public to make it accessible to anyone with the link.
  • botel ports close <port>: closes an exposed port and stops forwarding.
  • botel ports status <operation_id>: checks the outcome of a pending operation.

All commands accept --json for machine-readable output. Expose and close also accept --request-id <id> to retry safely after an unknown outcome.

Built-in ports

Two ports are always open, for Telegram and the dashboard. They aren't on the Ports card, can't be closed, and need a key or a sign-in.

Outbound traffic

A room has normal outbound internet access.

  • Programs in the room can connect to any service on the internet (APIs, git remotes, package registries).
  • Outbound traffic does not require an exposed port.
  • Outbound connections are made directly by the room; Botel does not proxy or relay them.

Questions? Write to [email protected].

On this page