funnel

CLI Reference

All funnel client commands and flags

funnel http

create an http tunnel to a local service.

funnel http <address>

<address> is local address or port to forward to (e.g. "3000" or "localhost:3000").

FlagDescription
-s, --servertunnel server url (overrides config)
-i, --idtunnel id (subdomain), generated if omitted
-t, --tokenauthentication token (overrides config)
--quic-portquic port on the server (overrides discovery)
--insecureskip tls certificate verification (for development)
--teamassociate tunnel with a team
funnel http 3000  # localhost:3000
funnel http 3000 --id my-app  # custom subdomain
funnel http 127.0.0.1:8080 --server https://tunnel.example.com  # explicit server
funnel http 3000 --team backend  # associate with team

funnel tcp

create a tcp tunnel to a local service (databases, ssh, game servers).

funnel tcp <port>

<port> is local port to forward to.

FlagDescriptionDefault
-s, --servertunnel server url (overrides config)
-i, --idtunnel id (subdomain), generated if omitted
-t, --tokenauthentication token (overrides config)
--quic-portquic port on the server (overrides discovery)
--insecureskip tls certificate verification (for development)
--teamassociate tunnel with a team
--remote-portrequest a specific port on the server (0 = auto-assign)0
funnel tcp 5432  # expose localhost:5432
funnel tcp 5432 --id my-db  # custom tunnel id
funnel tcp 22 --id my-ssh --remote-port 2222  # request specific server port
funnel tcp 5432 --team backend  # associate with team

funnel tls

create a tls passthrough tunnel (traffic forwarded without termination).

funnel tls <port>

<port> is local port to forward to (TLS traffic is passed through without termination).

FlagDescriptionDefault
-s, --servertunnel server url (overrides config)
-i, --idtunnel id (subdomain), generated if omitted
-t, --tokenauthentication token (overrides config)
--quic-portquic port on the server (overrides discovery)
--insecureskip tls certificate verification (for development)
--teamassociate tunnel with a team
--remote-portrequest a specific port on the server (0 = auto-assign)0
funnel tls 8443  # expose localhost:8443 with tls passthrough
funnel tls 8443 --id secure-app  # custom tunnel id
funnel tls 443 --remote-port 8443  # request specific server port

funnel login

log in via oauth.

funnel login
FlagDescriptionDefault
--provideroauth provider namegithub
funnel login  # uses github by default
funnel login --provider gitlab  # use a different provider

funnel logout

log out (clear token for current context).

funnel logout

funnel whoami

show the currently authenticated user.

funnel whoami

funnel status

show active tunnels on the server.

funnel status

funnel keys

manage api keys.

funnel keys list
funnel keys create deploy-key  # full access
funnel keys create ci-runner --scopes tunnels  # tunnels only
funnel keys revoke <id>

funnel keys list

list api keys.

funnel keys list

funnel keys create

create a new api key.

funnel keys create <name>

<name> is name for the new key.

FlagDescription
--scopescomma separated scopes (defaults to management,tunnels)

funnel keys revoke

revoke an api key.

funnel keys revoke <id>

<id> is key id to revoke.

funnel sessions

view tunnel sessions.

funnel sessions
FlagDescriptionDefault
--allshow all sessions (admin only)
--limitmaximum number of sessions to show50
funnel sessions
funnel sessions --all  # admin: show all users' sessions
funnel sessions --limit 100

funnel users

manage users (admin only).

funnel users list
funnel users set-role <id> admin  # promote to admin
funnel users deactivate <id>  # revoke access
funnel users reactivate <id>

funnel users list

list all users.

funnel users list
FlagDescriptionDefault
--limitmaximum number of users to show50

funnel users set-role

set a user's role.

funnel users set-role <id> <role>

<id> is user id.

<role> is new role (admin or member).

funnel users deactivate

deactivate a user.

funnel users deactivate <id>

<id> is user id.

funnel users reactivate

reactivate a user.

funnel users reactivate <id>

<id> is user id.

funnel teams

manage teams.

funnel teams create backend
funnel teams members <id>
funnel teams add-member <team_id> <user_id>
funnel teams set-role <team_id> <user_id> owner  # promote to owner
funnel teams remove-member <team_id> <user_id>

funnel teams list

list teams.

funnel teams list

funnel teams create

create a new team.

funnel teams create <name>

<name> is team name.

funnel teams delete

delete a team.

funnel teams delete <id>

<id> is team id.

funnel teams members

list team members.

funnel teams members <id>

<id> is team id.

funnel teams add-member

add a member to a team.

funnel teams add-member <team_id> <user_id>

<team_id> is team id.

<user_id> is user id to add.

funnel teams remove-member

remove a member from a team.

funnel teams remove-member <team_id> <user_id>

<team_id> is team id.

<user_id> is user id to remove.

funnel teams set-role

set a member's role in a team.

funnel teams set-role <team_id> <user_id> <role>

<team_id> is team id.

<user_id> is user id.

<role> is role (owner or member).

funnel context

manage server contexts.

funnel context create staging --server https://tunnel.example.com
funnel context use staging  # switch active context
funnel context list

funnel context list

list all contexts.

funnel context list

funnel context use

switch to a different context.

funnel context use <name>

<name> is context name to switch to.

funnel context create

create a new context.

funnel context create <name>

<name> is context name.

FlagDescription
--serverserver url

funnel context delete

delete a context.

funnel context delete <name>

<name> is context name to delete.

funnel config

view configuration.

funnel config show

show current configuration.

funnel config show

funnel config path

print config file path.

funnel config path

funnel completion

generate shell completion script.

funnel completion <shell>

<shell> is shell to generate completions for.

funnel completion bash > /etc/bash_completion.d/funnel
funnel completion zsh > ~/.zfunc/_funnel
funnel completion fish > ~/.config/fish/completions/funnel.fish

Global Flags

FlagDescription
-c, --contextcontext to use (overrides current_context in config)
--jsonoutput raw json envelope from the api
--versionPrint version and protocol info
--helpPrint help

On this page