tiny-bots

For macOS and Linux, on arm64 and x86-64

Agents that wake when there's work.

tiny-bots runs AI agents on your own Mac or Linux machine. Each one sleeps until its schedule comes round or you ask, works with only the tools you granted it, and stops to ask you before anything risky.

  • One binary, with its own database and app
  • Your agents and their history stay with you
  • Risky actions wait for your approval
Illustration: mail goes to a tiny-bots agent, and only an approved action comes out.
Work comes in, the agent wakes, and only what you allow goes out.

Asleep until it's needed

An agent is one markdown file: instructions in plain words, settings at the top. tiny-bots keeps it asleep until there's something to do.

  1. 1 It wakes

    When its schedule comes round, or when you run it from the app or the terminal. Its schedule is a timer, not a polling loop.

  2. 2 It works

    With its own instructions and memory, and the model you chose. Connectors and tools it wasn't granted don't exist for it.

  3. 3 It asks

    Every tool call passes a gate outside the model. Sending, paying and deleting wait for your approval.

One agent, one file

  • Edit it by hand or in the app, or ask chat for a change and review the diff before it's saved.
  • Switch it on or off with one flag.
  • Its memory is plain text you can read and edit.
  • A budget stops a run that goes on too long.
agents/morning-brief.md
---
name: morning-brief
enabled: true
triggers:
  - timer: "every weekday at 07:30"
    cron: "30 7 * * 1-5"
connectors: [github]
budget:
  max_steps: 40
  max_minutes: 10
---
Every weekday morning, list the
issues assigned to me and flag the
ones that changed since yesterday.

Wakes today

  • On a schedule
  • When you ask

Coming next Not in a release yet

  • Webhooks
  • Feeds
  • Streams
  • File changes

Their event sources are built and tested; the daemon doesn't start them yet.

You stay in charge

Permissions live outside the model, so no prompt can talk its way past them.

  • A gate the model can't see

    Each tool call is allowed, refused or held for you, by rules you own.

  • Approval before risky actions

    Sending, paying and deleting stop and ask first. You see the exact request.

  • Access granted per agent

    A connector an agent wasn't granted doesn't exist for it: no tools, no events.

  • Budgets that stop a run

    Limits on steps, tokens and minutes. A run that hits one stops and says where.

  • A record of every run

    Each event, model call, tool call and decision is kept, readable run by run.

  • Secrets kept out of files

    Keys stay in the daemon's environment or owner-only storage, never in its settings.

Shell access is off unless an agent's file asks for it. Once granted it runs with your user's permissions, so it asks before each command unless you choose otherwise.

Runs where you put it

There's no tiny-bots cloud. Agents, their memory and their history stay on the machine you install it on. Model requests go to the provider you choose, or to a model of your own.

  • Your Mac

    Run it while you work. tb link gives you a link that opens the app, already connected.

  • A Linux server or VM

    Leave it running. It answers only on the machine itself until you turn on remote access.

  • Your phone

    Optional remote access joins your own Tailscale network, with no ports opened. Pair a phone once with a code from tb pair.

Bring your own model

GitHub Copilot with a device sign-in, OpenAI, Anthropic, Gemini, AWS Bedrock, or any OpenAI-compatible endpoint, a model on your own machine included.

About app.aicrew.in

It's one hosted tiny-bots daemon, not a shared service. Opening it takes a code from tb pair on that machine, and it can't reach yours: your daemon serves its own app.

Manage it all from the browser

Every tiny-bots daemon serves its own app. Follow runs as they happen, approve or deny what waits on you, and set up agents, models, connectors and skills without editing a file.

  • Create and edit agents in a form or as the file itself, checked before anything is saved.
  • Sign in to GitHub Copilot and choose the model your agents use by default.
  • Add a weather source or a remote MCP server that needs no sign-in, tested before it's saved.
  • Ask chat for a connector. It shows you the checked source and installs only when you confirm.
  • Grant each agent its connectors one by one. Installing one, from a form or from chat, grants nothing.
  • Review a skill's exact files before you install it.

Connectors that need a sign-in or a token are still set up from the terminal.

Install on the machine that will run your agents

macOS or Linux, on Apple silicon or Intel, arm64 or x86-64. One binary and no runtime to install; a browser is fetched only when an agent first needs one and none is installed.

  1. Install tb

    curl -fsSL https://aicrew.in/install.sh | sh

    Picks the build for this machine, checks its SHA-256 before installing, and puts tb in ~/.local/bin with no sudo. If that folder isn't on your PATH yet, it says so. Read the script first.

  2. Set up your home

    tb init

    Creates ~/.tiny-bots, private to you, with an example agent that starts switched off.

  3. Choose a model

    tb login copilot
    tb models copilot --select

    Sign in to GitHub Copilot with a code you enter on any device, then pick the model your agents use by default. Signing in alone doesn't move them to Copilot; choosing does. For OpenAI, Anthropic, Gemini, Bedrock or a model of your own, name it in that home's config.toml and start the daemon with the provider's credentials in its environment.

  4. Start it

    tb serve

    Runs in the foreground, so leave it running. Ctrl-C stops it gracefully.

  5. Open the app

    tb link

    In a second terminal. It prints a link to the app on this machine that carries your access key, so keep it to yourself. Then try the example with tb on example and tb run example. Stuck? tb doctor says what to fix.

Light enough to leave running

Limits the test suite holds every build to. A change that breaks one fails.

  • Under 40 MBfor the whole binary, app and database included
  • Under 75 MBof memory while idle; measured 37 MB with twenty agents switched on
  • Under 1%of one core while idle; measured at most 0.1%
  • Under 250 msfrom an event to its agent waking, at the 95th percentile; measured 1.0 ms

Measured on an Apple M3 Pro on 8 October 2026.