Teeny Tiny,docs.
Everything Teeny Tiny can do, and how to do it.
- AgentGive it a task and review the result.
- MachinesA Linux desktop and terminal in your browser.
- SSH and editorsVS Code, Zed, scp and rsync.
- PreviewsA private HTTPS address for your app.
- DriveFiles that outlive every machine.
- BeamYour local terminal, in the browser.
Looking something up? See the command reference or troubleshooting.
To connect GitHub, 1Password, Drive, Tailscale, or Executor, follow the recipes.
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.
Install the CLI
For macOS and Linux, on arm64 and x64.
Sign in
Approve the code it shows in your browser.
Create a machine
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, ordemo.teenytiny.computer.
Desktop and terminal
- Desktop:
/machines/demo/desktop, orteenytiny 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.
| Preset | The machine stops |
|---|---|
| 5m | After 5 minutes |
| 20m | After 20 minutes |
| 4h | After 4 hours. This is the default. |
| 6h | After 6 hours |
| 24h | After 24 hours |
| never | When you stop it |
On the dashboard, a machine with no time limit needs approval. Email hello@teenytiny.computer.
Stop, start, and delete
teenytiny listshows your machines.teenytiny stop demostops one. Reaching the time limit does the same.teenytiny start demostarts it again, with a new time limit.teenytiny destroy demodeletes the machine and its files.
/config are kept. Running programs end, and files elsewhere may not be kept. teenytiny inspect demo shows what a machine keeps. Commit and push anything you cannot replace.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.
Add a command to run it and exit: teenytiny ssh demo -- uname -a.
Your own SSH client and editor
Run this once:
Every machine then answers at <id-or-name>.ssh.teenytiny.computer.
- 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.
Previews
Any web server on a machine gets a private HTTPS address.
Serve plain HTTP on 0.0.0.0:
- 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.1does 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
WebClientservice. Windows also stops at 50 MB a file until an administrator raisesFileSizeLimitInBytes. 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 pibeams one command in place of your shell.teenytiny beam --name review -- codex --resumenames 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.
| Command | What it does |
|---|---|
| teenytiny auth | Sign in from this computer. |
| teenytiny auth status | Show the account in use. |
| teenytiny logout | Sign out this computer. |
| teenytiny create [name] | Start a machine and print its URLs. |
| teenytiny list | List 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 setup | Set up ssh, scp, sftp, and editors. |
| teenytiny ssh keys | Add, 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 update | Update the CLI. |
| teenytiny help [command] | Show help for a command, with examples. |
| teenytiny version | Show the CLI version. |
Command options
| Command | Option | What 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
--jsonprints one JSON document for scripts, on one line when piped. It never prompts.--yesskips 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>, orCLI_WORKER_URL, chooses the deployment.CLI_CONFIG_DIRmoves the CLI’s files.~/.config/teenytinyby default.- Once a day the CLI checks for a newer version and asks before installing it. Set
TEENYTINY_NO_UPDATE_CHECK=1to turn this off, and runteenytiny updateany time. --no-color,--help,--version.
Scripts and agents
teenytiny help <command>, or<command> --help, shows one command with examples and retry notes.- Add
--jsonto either for a schema of commands, arguments, options, and behavior.teenytiny help --jsoncovers every command. ItsschemaVersionchanges only for incompatible changes; new fields can appear at any time. - Errors print
{ ok: false, error }with a stablecodeand 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 retryexecon its own: the command may have run. auth --jsonprints JSON Lines: anauthorization_requiredevent, thenauthenticatedorerror.sshandbeamdo 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 logoutsigns 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.