Routines Routines

11 / CLI

Your whole workspace. From the terminal.

The routines command does what the app does: read and send email across every connected inbox, check your calendar and Slack, search memory, read meetings, and create or run automations. Connect your accounts once in the app, then drive them all from the shell or just tell Claude to use it. Coming from terminal-first agents? We explained what OpenClaw is and where each approach fits.

zsh — routines

$ routines connectors

Gmaileduard@binarcode.comconnected
Gmaileduard@getroutines.aiconnected
Calendareduard@binarcode.comconnected
SlackBinarCode workspaceconnected

$ routines email search "is:unread newer_than:1d"

3 messages across 2 inboxes

Ana (Acme Ventures)Re: term sheetbinarcode.com
StripePayout sentgetroutines.ai
MihaiBeta feedbackbinarcode.com

$ routines run "Morning brief"--engine claude

Done. Ran on your Claude Code subscription.

Output saved. View it with routines outputs "Morning brief" --last

$

Local reads work anytime · email, calendar & runs go through the app · no account, no cloud sync

Hand it to your agent

No setup. Just tell Claude to use it.

Paste this into Claude Code, Claude Desktop, or Cursor. It installs the skill and starts working your accounts.

First, install the Routines skill once: routines skill --install ~/.claude/skills The `routines` CLI controls my Routines macOS app: it reads and sends email across my connected Gmail accounts, reads my Google Calendar and Slack, searches my notes and meeting transcripts, and creates, runs, and schedules automations. Run `routines skill` for the full command reference and `routines --help` for every command. Reads work anytime; sending, running, and creating go through the running app. Start by running `routines connectors` and `routines list`, then help me triage today's email.

Claude Code

Summarize today's unread email across my accounts, then make it a daily 8am routine.

routines email search "is:unread newer_than:1d"

routines create --name "Inbox digest" --schedule "every day at 8am"

6 unread across 2 inboxes, 2 need a reply. Created "Inbox digest", daily at 8:00 AM, live in your Routines app.

01

Everything the app can do

`routines tools list` shows every action the app exposes; `routines tools call` runs any of them with JSON arguments. Email, calendar, Slack, memory, meetings, and routines, the same capabilities as the UI, now scriptable.

02

Email across every inbox

Connect work and personal Gmail in the app, then search them all at once or scope to one with --account. Send mail with attachments, cc, and bcc from the account you choose, and download attachments straight to a folder.

03

Calendar, Slack, memory, meetings

`routines calendar today` and `week`, `routines slack messages`, `routines memory search`, `routines meetings show`. Read your whole working context from the shell, combined across accounts or one at a time.

04

Create, run, and manage routines

list, show, create, edit, run, enable, disable, delete. Schedules in plain English or --cron. Pick the engine per run: your Claude Code subscription, or the API key configured in the app.

05

Just tell Claude to use it

Install the skill once with `routines skill --install ~/.claude/skills`, then talk to Claude normally, it runs the CLI for you. `routines agent-docs` prints a CLAUDE.md snippet, and `routines mcp` exposes everything over MCP if you prefer that.

06

Local, and never your key

Reads of routines, outputs, memory, and meetings hit your local database and work even with the app closed. Connector actions and runs go through the running app, so the CLI never touches your API key or your tokens. Install it from Settings, no package manager.

Your terminal, meet your workspace.

Email, calendar, Slack, memory, meetings, and automations, from the shell or from Claude. All of it local.

Download