Kivel

SSH gateway for kivel commands

Run kivel CLI commands over SSH with your API key as the password. No shell, forwarding, SCP or SFTP: one command per session with JSON output.

Updated 30 October 2026

What the SSH gateway does

The SSH gateway runs the same commands as the kivel CLI on the server, so you can use Kivel from any machine with an SSH client and no Node.js. It is an optional component that an operator enables; the Docker setup binds it to localhost:2222 by default and exposing it publicly is an operator decision.

Each connection runs one command. There is no interactive shell, no terminal, no port forwarding, no SCP and no SFTP.

Connect

Log in as user kivel with a workspace API key (kv_...) as the password. Commands must start with kivel. Pipe JSON to memory set, monitor create, approval ask, mock creation and other commands with a body; pipe bytes to upload or run --file. Use -n for read-only commands. The local CLI listen command is not offered over SSH.

Run commands over SSH
# Verify the host fingerprint before the first connection.
printf '{"hello":true}' | ssh -T -p 2222 kivel@your-host kivel run json
ssh -T -n -p 2222 kivel@your-host kivel resources
ssh -T -n -p 2222 kivel@your-host kivel inbox create --visibility public

Session limits

Output is compact JSON on standard output; errors are JSON on standard error with exit status 1. Plan allowances and scopes are the same as for HTTP.

  • Authentication: password only, user kivel, up to 4 attempts per connection and 10 per 15 minutes per IP address.
  • One command per session; send it within 10 seconds of opening the session.
  • Commands stop after 30 seconds; a connection closes after 120 seconds.
  • Standard input up to 10 MiB.
  • Up to 4 connections per IP address.
  • The API key is checked again for every request, so a revoked key stops working immediately.

Frequently asked questions

Can I open an interactive shell?

No. The gateway rejects shell, terminal and subsystem requests, so SCP and SFTP do not work either. Each session runs one kivel command.

Which commands are available over SSH?

The shared CLI commands cover utilities, email, webhooks, memory, monitors, human questions, mock APIs, mock MCP servers and file lifecycle. The continuous listen command runs locally in the CLI only. SSH requires a workspace key; human approvals and billing stay in the browser.

Is the SSH gateway available on every installation?

Only where the operator has enabled and exposed it. Self-hosted Docker installs bind it to localhost:2222 by default, and setting SSH_PORT=0 disables it.