Teeny Tiny,recipes.
Connect one service at a time, step by step.
Each recipe tells you what to get first, the steps, how to check the result, and how to disconnect. For commands and the basics, see the docs.
GitHub
Clone your GitHub repositories and push to them from every machine. The GitHub token stays in Teeny Tiny and does not go into a machine.
Before you start
- A GitHub account that can read the repositories.
- A machine. See the quick start.
Steps
Open Integrations
Sign in and open Integrations.
Connect GitHub
In the GitHub card, click Connect GitHub. Approve the authorization on GitHub in five minutes.
Install the GitHub App
If the card shows Install the GitHub App, click Install GitHub App. On GitHub, select the repositories that your machines can use.
Set your Git name and email
Do this one time on each machine, before your first commit.
Check it
On the machine, clone a repository, commit a change, and push it.
- HTTPS and SSH addresses for
github.comboth go through Teeny Tiny. - To add or remove repositories, click Manage repositories in the GitHub card.
- Every machine on your account gets the same repositories.
- You cannot use Git LFS on a machine.
Disconnect
In the GitHub card, click Disconnect. Every machine loses GitHub access at once. Cloned repositories and local commits stay on the machine.
To remove the GitHub App from your GitHub account too, uninstall it in your GitHub settings.
GitHub Actions
Run the jobs of a repository on Teeny Tiny machines. Each job gets a new machine, and Teeny Tiny deletes it when the job ends.
Before you start
- GitHub connected, with the GitHub App installed on the repository. See GitHub.
- Admin access to the repository.
- A repository that is not public.
- The Teeny Tiny CLI, signed in. See the quick start.
Steps
Turn on runners for the repository
Do not add
--branch. Teeny Tiny refuses--runnerswith--branch.Set runs-on in the workflow
Set this value on each job that must run on Teeny Tiny.
You can also add
linuxandx64. Teeny Tiny ignores a job with other labels.Push the workflow
Push the change to GitHub, then start the workflow.
Check it
- Open the run on GitHub. The runner name is
teenytiny-<machine-id>. - The dashboard shows the machine when the job runs.
- A runner machine runs for 6 hours at most.
- A runner machine cannot use your GitHub connection, Drive, or integrations.
Disconnect
Turn off runners and keep the repository on your list:
Or remove the repository from your list:
1Password
Read secrets from your 1Password vaults on a machine. The service account token stays in Teeny Tiny and does not go into a machine.
Before you start
- A 1Password account that can make service accounts.
- A machine. 1Password is for machines only. The Agent sandbox cannot read your vaults.
Steps
Make a service account in 1Password
Give it read access to only the vaults that your machines must see. Copy its token. The token starts with
ops_. See 1Password service accounts.Paste the token in Teeny Tiny
Open Integrations. In the 1Password card, paste the token in Service account token. Click Connect. The card then shows the vaults that the token can read.
Use 1Password on a machine
All your machines can read the vaults at once. You do not have to restart a machine that runs. See Which machines get integrations.
Check it
On the machine, run this command. It prints connected.
| Command | Result |
|---|---|
| tt plugin 1password read <reference> | Prints the value of one secret. |
| tt plugin 1password inject -i FILE -o FILE | Writes a copy of a template with each op:// reference replaced by its value. |
| tt plugin 1password run -- <command> | Starts the command. Each environment variable with an op:// value gets the secret. |
| tt plugin status 1password | Shows if this machine can read your vaults. |
- You can type
1pfor1password. The old commandtt-secretsworks until the next release. - A reference uses the vault, item, and field titles. If a title has characters other than letters, digits, spaces,
_,., and-, use the IDs:op://<vault-id>/<item-id>/<field-id>. - 1Password lets a service account make 1,000 requests a day on individual and family plans. The limit is 5,000 on Teams and 50,000 on Business.
Disconnect
In the 1Password card, click Disconnect. Teeny Tiny deletes the token, and machines cannot read your vaults.
Then delete the service account in 1Password.
Drive
Use the same files on your machines, in the browser, and on your computer.
Before you start
- A Teeny Tiny account. Machines get Drive with no connection step.
Steps
Open Drive
Open Drive in the dashboard. Upload, move, and delete files there.
Make a password for your computer
In the Connect a computer card, click Connect. Type a name in Name this computer and click Create password. Copy the Server address, the Username, and the Password. You see the password one time only.
Connect from macOS
In Finder, choose Go → Connect to Server (⌘K). Paste the server address and click Connect. Choose Registered User, then paste the username and password.
Or connect from Windows
In File Explorer, open This PC and choose Map network drive. Paste the server address as the folder. Tick Connect using different credentials, then paste the username and password.
Check it
On a machine, list the files in Drive.
For the limits of Drive, see Drive limits.
Disconnect
On the Drive page, click Revoke next to the name of the computer. That computer cannot open your Drive. Your files, your browser sessions, and the CLI do not change.
Tailscale
Put a machine on your tailnet, so it can reach your private services. The machine joins as a temporary device and leaves when the machine ends.
Before you start
- A Tailscale account that can change the tailnet policy file and make OAuth clients.
Steps
Add a tag to your tailnet
In the Tailscale admin console, open the tailnet policy file. Add a tag owner, for example:
Add access rules that limit what the tag can reach. Machines can then reach only those services.
Make an OAuth client
In the Tailscale admin console, make an OAuth client. Give it the
auth_keyswrite scope and thedevices:corewrite scope. Limit each scope to your tag. Copy the client ID and the secret. See Tailscale OAuth clients.Paste the client in Teeny Tiny
Open Integrations. In the Tailscale card, paste the values in OAuth client ID and OAuth client secret. Type your tag in Tag. The default is
tag:teenytiny. Click Connect.Start the machine
A machine joins your tailnet when it starts. If the machine runs now, run
tt plugin tailscale upon it, or stop it and start it again. See Which machines get integrations.
Check it
On the machine, run this command. It prints running when the machine is on your tailnet.
| Command | Result |
|---|---|
| tt plugin tailscale up | Joins your tailnet now. Use it if you connect Tailscale after the machine starts. |
| tt plugin tailscale down | Removes the machine from your tailnet until the machine starts again. |
- You can type
tsfortailscale. The old commandteenytiny-tailscale statusworks until the next release. - The device name is
tt-and the machine name, for examplett-demo. - Programs reach the tailnet through a proxy. A new terminal sets
ALL_PROXYtosocks5h://localhost:1055andHTTPS_PROXYtohttp://localhost:1056. - Open a new terminal after the machine joins. Old terminals keep their old proxy settings.
- Teeny Tiny keeps your OAuth client. The machine gets only a key that it can use one time, for 10 minutes.
Disconnect
In the Tailscale card, click Disconnect. Teeny Tiny forgets the OAuth client and removes its machines from your tailnet.
Then revoke the OAuth client in the Tailscale admin console.
When a machine stops or you delete it, Teeny Tiny removes its device from your tailnet.
Executor
Give Claude Code, Codex, and pi on a machine the tools in your Executor workspace. The policies in Executor decide what each call can do.
Before you start
- An Executor workspace, in Executor Cloud or on your own server.
Steps
Make an API key in Executor
In the settings of your Executor workspace, make a personal API key. See the Executor docs.
Paste the key in Teeny Tiny
Open Integrations. In the Executor card, keep the MCP URL for Executor Cloud. For your own server, type its MCP URL. Paste the key in API key. Click Connect.
Start the machine
A machine gets the Executor tools when it starts. If the machine runs now, run
tt plugin executor syncon it, or stop it and start it again. See Which machines get integrations.
Check it
Teeny Tiny adds an MCP server with the name executor to Claude Code, Codex, and pi. Its address is http://teenytiny-mcp.internal/executor. On the machine, list the MCP servers of Claude Code:
| Command | Result |
|---|---|
| tt plugin status executor | Shows if agents on this machine have the Executor tools. |
| tt plugin executor servers | Lists the MCP servers that Teeny Tiny gives to agents. |
| tt plugin executor sync | Writes the servers into Claude Code, Codex, and pi now. Use it if you connect Executor after the machine starts. |
- Teeny Tiny writes the server into
~/.claude.json,~/.codex/config.toml, and~/.pi/agent/mcp.json. - If you have your own MCP server with the name
executor, Teeny Tiny does not change it. - Agents call your sources through the
executetool of Executor. To add sources and approval rules, click Manage sources and policies in the Executor card.
Disconnect
In the Executor card, click Disconnect. Teeny Tiny deletes the API key, and agents lose the Executor tools.
Then delete the API key in Executor.
The tt plugin command
1Password, Tailscale, and Executor are plugins. The tt plugin command uses the same names on your computer and on a machine.
| Name | Short name |
|---|---|
| 1password | 1p |
| tailscale | ts |
| executor | None |
tt plugin listandtt plugin statuswork on your computer and on a machine. On your computer, they show your account. On a machine, they show that machine.tt plugin connectandtt plugin disconnectopen Integrations. You type tokens and keys only on that page. A command never takes them.- Commands for one plugin, for example
tt plugin 1password read, work only on a machine. - Add
--jsontolistorstatusto get JSON.
Which machines get integrations
When you connect 1Password, Tailscale, or Executor, all your machines can use it. GitHub and Drive work the same way.
| Integration | On a machine that runs | When you disconnect |
|---|---|---|
| 1Password | Works at once. | Stops at once. |
| Tailscale | Joins when the machine starts again, or when you run tt plugin tailscale up. | Leaves your tailnet at once. |
| Executor | Gets the tools when the machine starts again, or when you run tt plugin executor sync. | Calls to the tools fail at once. |
- Connect each integration in Integrations.
- Integrations work only on Cloudflare machines.
- Machines that GitHub Actions makes cannot use integrations.
- You cannot turn on an integration for only some machines.