Skip to content

Quick start

Three commands to a running machine.

Create an account first. Starting a machine needs a subscription or an access code: see pricing, or talk to us.

  1. Install the CLI

    curl -fsSL https://teenytiny.computer/install.sh | sh

    For macOS and Linux, on arm64 and x64.

  2. Sign in

    teenytiny auth

    Approve the code it shows in your browser.

  3. Create a machine

    teenytiny create demo

    It prints the machine’s page and an SSH command. Open the page for the desktop and terminal.

Prefer the browser? Open the dashboard and choose New.

Agent

A coding agent with its own sandbox. You do not need a machine.

  • Open Agent and create a project. Choose a GitHub repository if you have one.
  • Start a session and tell the agent what to do.
  • Files, changes, a terminal, and canvases sit beside the conversation.
  • Ask the agent to start your app, then open Previews to try it. Previews are private to your account.

Machines

Each machine has 2 vCPU, 2 GB RAM, and 4 GB disk, with a desktop, a terminal, and SSH.

Create

  • Run teenytiny create demo, or choose New on the dashboard.
  • Names use lowercase letters, numbers, and hyphens, up to 40 characters. Leave the name off to get a random one.
  • A machine’s name cannot be changed.
  • Every command takes the machine’s name or its ID.
  • The machine’s page is teenytiny.computer/machines/demo, or demo.teenytiny.computer.

Desktop and terminal

  • Desktop: /machines/demo/desktop, or teenytiny open demo.
  • Terminal: /machines/demo/terminal. Close the tab and your session keeps running.
  • Both share the same files.

Time limits

Set a time limit when you create or start a machine, for example teenytiny create demo --expires-in 6h. The clock starts at once. Being idle does not stop a machine.

PresetThe machine stops
5mAfter 5 minutes
20mAfter 20 minutes
4hAfter 4 hours. This is the default.
6hAfter 6 hours
24hAfter 24 hours
neverWhen you stop it

On the dashboard, a machine with no time limit needs approval. Email hello@teenytiny.computer.

Stop, start, and delete

  • teenytiny list shows your machines.
  • teenytiny stop demo stops one. Reaching the time limit does the same.
  • teenytiny start demo starts it again, with a new time limit.
  • teenytiny destroy demo deletes the machine and its files.

Coding tools

Pi, Claude Code, and Codex are installed on every machine. Run pi, claude, or codex in the terminal and sign in with your own account.

SSH and editors

One command to connect. One more to set up your editor.

teenytiny ssh demo

Add a command to run it and exit: teenytiny ssh demo -- uname -a.

Your own SSH client and editor

Run this once:

teenytiny ssh setup

Every machine then answers at <id-or-name>.ssh.teenytiny.computer.

ssh demo.ssh.teenytiny.computer
scp ./notes.md demo.ssh.teenytiny.computer:/config/
  • VS Code Remote-SSH, Zed, sftp, rsync, and Git over SSH use the same host.
  • The machine’s page has VS Code and Zed links ready to click.
  • These hosts work on the computer you ran setup on, and nowhere else.

Without the CLI

For a client that cannot use the setup above, add a key to your account and connect with the machine’s ID.

teenytiny ssh keys add
ssh <machine-id>@ash-ssh.teenytiny.computer

Previews

Any web server on a machine gets a private HTTPS address.

Serve plain HTTP on 0.0.0.0:

bun --eval 'Bun.serve({ hostname: "0.0.0.0", port: 8080, fetch: () => new Response("hello") })'
  • It answers at https://8080--<machine-id>.teenytiny.computer/. The address uses the machine’s ID, not its name.
  • Only your account can open it.
  • HTTPS and WebSockets are handled for you.
  • The machine’s page lists running servers under Exposed ports. Start your server, then refresh the list.
  • A server on 127.0.0.1 does not get an address.
  • A few ports are kept for Teeny Tiny’s own services.

Drive

One place for files that outlive every machine.

  • In the dashboard, at teenytiny.computer/drive.
  • On your Mac or PC, as a network drive.
  • On a machine, at /config/drive, when the machine’s page shows Drive as mounted.

Use Drive for documents, datasets, and configs. Keep Git repositories, package installs, and databases on the machine’s disk: Drive is too slow for them.

In the dashboard

Upload, download, rename, move, and delete files and folders. Uploads have no size limit, so send large files this way.

On your Mac or PC

  • Choose Connect a computer on the Drive page. It shows an address, a username, and a password for that computer. The password is shown once.
  • macOS: in Finder, choose Go, then Connect to Server (⌘K).
  • Windows: in File Explorer, open This PC and choose Map network drive. Tick “Connect using different credentials”.
  • If Windows will not connect, start the WebClient service. Windows also stops at 50 MB a file until an administrator raises FileSizeLimitInBytes. The Connect dialog has the command.
  • You can remove one computer without affecting the others.

Limits

  • Changes take a few seconds to show elsewhere. The dashboard updates when you press Refresh.
  • The last save wins. Drive does not merge edits or lock files.
  • 95 MB a file from a Mac or PC. Send larger files from the dashboard.
  • 500 items at a time from a Mac or PC. Move or delete larger folders in the dashboard.
  • No offline use. A network drive needs a connection.

Beam

Your own terminal, in a browser tab. It runs on your computer, not on a machine.

teenytiny beam
  • teenytiny beam pi beams one command in place of your shell.
  • teenytiny beam --name review -- codex --resume names the beam on the dashboard. Put -- before the command’s own flags.
  • It ends when the command exits, when you press Ctrl-D, or when you end it from the dashboard.
  • Only your account can open it.
  • Your computer accepts no incoming connections.
  • For macOS and Linux.
CommandWhat it does
teenytiny authSign in from this computer.
teenytiny auth statusShow the account in use.
teenytiny logoutSign out this computer.
teenytiny create [name]Start a machine and print its URLs.
teenytiny listList your machines, running or stopped.
teenytiny inspect <id-or-name>Show state, URLs, and what Stop keeps.
teenytiny open <id-or-name>Open the desktop in a browser.
teenytiny exec <id-or-name> -- <cmd>Run one command on a machine.
teenytiny ssh <id-or-name> [-- <cmd>]Open an SSH session, or run one command over it.
teenytiny ssh setupSet up ssh, scp, sftp, and editors.
teenytiny ssh keysAdd, rename, and remove account SSH keys.
teenytiny beam [command]Put your own terminal in the browser.
teenytiny start <id-or-name>Start a stopped machine.
teenytiny stop <id-or-name>Stop a machine.
teenytiny destroy <id-or-name>Delete a machine and its files.
teenytiny updateUpdate the CLI.
teenytiny help [command]Show help for a command, with examples.
teenytiny versionShow the CLI version.

Command options

CommandOptionWhat it does
create, start--expires-in <preset>Time limit: 5m, 20m, 4h, 6h, 24h, or never. 4h by default.
create, start--wait <seconds>How long to wait for the machine. 300 by default.
create--idempotency-key <key>Makes a retried create safe. Use a new key for each machine.
list--limit <n>Rows to return. 100 by default, 500 at most.
exec--cwd <path>Working directory. /config by default.
exec--user <abc|root>User to run as. abc by default.
exec--timeout-ms <ms>Stop waiting for the command after this.
beam--name <label>Name the beam on the dashboard.
ssh keys add[file] --name <label>Add a public key. Without a file, adds the CLI’s own key.
ssh keys rename<id-or-fingerprint> --name <label>Rename a key.
ssh keys remove<id-or-fingerprint>Remove a key.

Global options

  • --json prints one JSON document for scripts, on one line when piped. It never prompts.
  • --yes skips confirmation prompts. With --json, stop, destroy, and ssh keys remove need it.
  • --request-timeout <ms> sets the timeout for each request. 30000 by default.
  • --worker-url <url>, or CLI_WORKER_URL, chooses the deployment.
  • CLI_CONFIG_DIR moves the CLI’s files. ~/.config/teenytiny by default.
  • Once a day the CLI checks for a newer version and asks before installing it. Set TEENYTINY_NO_UPDATE_CHECK=1 to turn this off, and run teenytiny update any time.
  • --no-color, --help, --version.

Scripts and agents

  • teenytiny help <command>, or <command> --help, shows one command with examples and retry notes.
  • Add --json to either for a schema of commands, arguments, options, and behavior. teenytiny help --json covers every command. Its schemaVersion changes only for incompatible changes; new fields can appear at any time.
  • Errors print { ok: false, error } with a stable code and a nonzero exit code.
  • To retry a create after a timeout, repeat it with the same --idempotency-key. You get the same machine. Do not retry exec on its own: the command may have run.
  • auth --json prints JSON Lines: an authorization_required event, then authenticated or error. ssh and beam do not support --json.

Account and billing

Teeny Tiny is in beta.

  • Sign in with a password or a passkey. Change either in Security.
  • Starting machines and using managed models needs a subscription or an access code. Add one in Billing.
  • Connect GitHub and your own model accounts in Integrations. The recipes show each step.
  • Your machines are yours alone. No one else can list, open, or stop them.
  • teenytiny logout signs out one computer. Your other computers and browsers stay signed in.
  • Questions? Talk to us, or email hello@teenytiny.computer.

teenytiny: command not found

The installer writes to ~/.local/bin. Add export PATH="$HOME/.local/bin:$PATH" to your shell profile.

A command says you are not signed in

Run teenytiny auth again. If it keeps happening, run teenytiny auth status and check that CLI_WORKER_URL is not set.

A command says payment is required

Your account has no subscription or access code. Open the billing link the command prints.

A machine URL returns 404

The machine was deleted, or belongs to another account. A stopped machine returns 409.

A preview does not appear

Serve on 0.0.0.0, not 127.0.0.1, then refresh Exposed ports.

SSH or SCP cannot find the host

Run teenytiny ssh setup on this computer.

Files are missing after a machine stops

Stop keeps /config. Files elsewhere may not be kept.

Still stuck?

Email hello@teenytiny.computer.

In beta. Talk to us.

Tiny machines, for your mighty work