Local mode

Run workflows on your own computer with the tutti command. No server, database or account, and nothing leaves your machine except what your steps send.

Edit this page on GitHub

Install

One package with no dependencies. It needs Node 18 or later.

Terminal
$ npm i -g @darkmatter-ai/tutti$ tutti use local  # local becomes the default on this machine$ tutti use  # shows which mode you are in

tutti use remote switches back. Add --local or --remote to run a single command the other way.

Run a workflow

A workflow is the same JSON the app uses: its steps and the lines between them. Run it from a path, or save it in ~/.agents/workflows and run it by id.

Terminal
$ tutti run ./morning-leads.json --trust  execution id    exec_3kq9  workflow name   Morning leads  status          success  duration        4612$ tutti executions list  # recent runs on this machine$ tutti executions get exec_3kq9  # each step, and what it gave back
It asks before a new workflow runsSteps can call the network and run code, so the first run of each workflow asks for your trust. --trust answers yes; tutti trust forget takes it back.

Keep secrets

Steps ask for credentials by name, such as GITHUB_TOKEN. Local mode looks in your environment first, then in its own store.

Terminal
$ tutti secrets set GITHUB_TOKEN  # asks for the value$ tutti secrets list  # names only, never values

The store is a file only you can read. Set AGENTS_SECRET_PASSPHRASE to encrypt it as well.

Run it on a schedule

Schedules use launchd on macOS and cron on Linux, so they run while your computer is awake.

Terminal
$ tutti schedule install ./morning-leads.json --cron "0 8 * * 1-5" --timezone Europe/Lisbon$ tutti schedule list$ tutti schedule remove <id>  # the id that list shows

Start runs over HTTP

tutti serve listens on your machine. A POST to /<workflow id> runs that workflow with the body as its input.

Terminal
$ tutti serve --port 8787$ curl -X POST localhost:8787/morning-leads -d '{"source": "website"}'

To listen beyond this machine, set a token with --token or AGENTS_SERVE_TOKEN. Requests then need it as a bearer token.

AI steps use your own AI

An AI step hands its prompt to the Claude Code command on your machine. Set AGENTS_AI_CLI=codex to use Codex instead. You stay signed in to those as usual; Tutti holds no AI key.

What it doesn't do yet

Local mode runs workflows. For the rest, self-host the app or use the hosted one.

The editor in a browserSelf-host or hosted
Teams, CRM, Collections and filesSelf-host or hosted
An MCP server for AI appsPlanned
AI agents that call other workflowsPlanned

Where things are kept

Workflows~/.agents/workflows
Run history~/.agents/runs
Secrets and trusted workflows~/.config/agents
Sign-in, for remote mode~/.config/tutti/config.json

Analytics consent

We use Google Analytics and Hotjar to understand conversion and product usage. Accept to enable measurement. Decline to keep them disabled.

Privacy policy