Skip to content
SyntaxRoutines

Open source · Claude Code, Codex and scripts

Your routines run on their own. At the right time, on this PC.

Register once: who runs it, the days, the time and what to do. Syntax Routines runs Claude Code, Codex or your script on your computer and sends an e-mail only when something fails.

No server, no account, no cloud. One local process, one SQLite database and a panel on 127.0.0.1.

  • MIT, free
  • In daily use since 2026-09-14
  • Windows 10 and 11, macOS 13+ (beta)

Using Claude Code or Codex? There is a skill so the agent itself takes care of the routines.

Scroll
Operations dashboard with upcoming events, run results and error rate
Your operation at a glance. Real dashboard with demo data.
  • Claude Code

    Prompt over stdin, model and effort set by you, permission bypass inside the folder.

  • Codex

    The same path, with automatic agent switch when the usage limit runs out.

  • Scripts

    One command line as in cmd. Exit code 0 succeeds, anything else is a failure.

  • Windows, Mac and Linux

    Installs without admin rights, starts at your login and restarts if it dies. macOS in beta, Linux experimental.

The problem

People who work with coding agents accumulate work that repeats.

The summary every morning, the queue checked every 15 minutes, the weekly repository sweep. Today that lives in two bad places.

  1. Every Monday I open the chat and ask for the same summary again.

    Becomes a Claude Code routine with a prompt, days and time. Monday at 09:00 it runs without you typing anything.

  2. It is in Task Scheduler, in a .ps1 nobody remembers where it came from.

    Becomes a script routine with history and output of every run in the panel, and the command visible instead of hidden.

  3. The queue has to be checked every 15 minutes, and nobody keeps watching.

    Becomes an interval routine, from 5 min to 12 h, on the days you mark. Failed, an e-mail arrives. Worked, silence.

How it works

Three steps, and the third one only happens when something goes wrong.

  1. Register the routine

    Who runs it (Claude Code, Codex or a command line), the folder, the days, the time or the interval, and the prompt or the command. From the panel, the CLI or the agent itself.

  2. It runs at the scheduled time

    On your PC, with your account, without asking for permission, inside the folder you chose. A locked screen does not interrupt. PC off at that time: you decide whether it skips or runs at boot.

  3. It failed, you hear about it

    Exit code, timeout, usage limit exhausted, folder out of place: any failure produces an e-mail with the routine, the error and the panel link. Success stays quiet, and the log is kept for 30 days.

Three kinds of routine

Agent or script, the same scheduler.

An agent routine gets a prompt. A script routine gets a command line. Both get days, time, history and alerts.

Claude Code

Prompt over stdin with permission bypass, model and effort set on the routine. Usage limit: up to three attempts, and it can switch to Codex on its own.

claude --model opus
prompt  Summarize yesterday's campaigns…
when    Mon to Fri, at 09:00

Codex

The same contract as Claude Code, with OpenAI's executor. Each one is the fallback for the other when "Switch agent automatically" is on.

codex   CLI default model
prompt  Review the repository and open…
when    Sun, at 07:00

Script

One command line as you would type it in cmd, run in the routine's folder, without a window. Exit code 0 succeeds; anything else is a failure, and becomes an e-mail.

cmd     powershell -File check-backup.ps1
folder  D:\Backups
when    every day, every 15 min

Every routine runs inside the root folder set in Settings, checked by real path: a junction or symlink pointing outside is refused, and system folders are blocked. Up to N runs in parallel, one per routine.

Principle

There is no server, account or cloud. It is your PC, at the time you set.

One local process that starts at your login, one SQLite database in the app folder and a panel that listens only on 127.0.0.1. Whoever has the panel password controls your PC, so treat it like the password of your computer account.

CLI + skill

You do not even need to open the panel. The agent takes care of the routines.

The app ships with a CLI and a skill for Claude Code and Codex. With both installed, the agent sees the routines, suggests scheduling what you repeat and registers it after you say yes.

  • Reads with list, show, settings, runs and log: schedule, next run, how the last one ended and the whole output.
  • Writes with add, edit, enable, disable, run-now and rm, through the same validation as the API routes.
  • Asks for your yes before creating, changing or deleting any routine. The skill is what forbids the opposite.

In Claude Code, without cloning anything:

/plugin marketplace add thalesholleben/syntax-routines
/plugin install syntax-routines@syntax-routines

For Codex, from a clone: node scripts/install-skill.mjs codex. Details in skills/. The CLI output and the skill are in Brazilian Portuguese.

Inside

Three screens. Your operation in view.

Dashboard, routines and settings. See what is happening now, what comes next and how to set up each routine. Real screenshots with demo data.

Dashboard in a laptop frame
Operations centerUpcoming events, current runs and error rate in one view.
Responsive dashboard in a phone frame
A layout that adaptsThe dashboard at phone width. The app runs locally on your computer.
Claude Code routine dialog fully visible
Agent routinesChoose the executor, model, effort, schedule and prompt.
Script routine dialog fully visible
Scripts on scheduleA command, a folder and the interval you need.
Syntax Routines settings in a laptop frame
Everything in its placeRoot folder, parallel runs and failure notification settings.

Installation

One command, no admin rights.

Windows 10 or 11, or macOS 13 or newer (beta), with Node.js 24.13 or newer. For agent routines, claude and codex already installed and authenticated under your user.

Windows

# in the folder where you keep projects
git clone https://github.com/thalesholleben/syntax-routines.git
cd syntax-routines
.\service\install.ps1 -Build
Download the latest release Prefer the zip? The release has the same content as the clone.

macOS and Linux beta

# in a terminal, no sudo
git clone https://github.com/thalesholleben/syntax-routines.git
cd syntax-routines
./service/install.sh --build
Registers a LaunchAgent on the Mac, or a systemd unit on Linux.
What the script does

Installs dependencies, builds and registers the service that starts at your login, with no window and a restart if it dies: a scheduled task on Windows, a LaunchAgent on the Mac, a systemd unit on Linux. It also creates the shortcut that opens the panel in app mode on Chrome or Edge.

First access

You create the panel password. Then, in Settings, you set the root folder where routines may run and click Configure e-mail: Gmail with an app password or another SMTP server, tested when you save.

To remove

.\service\uninstall.ps1 on Windows, ./service/uninstall.sh on Mac and Linux. The data in data/ stays. Without the service: npm install, npm run build and start.cmd (or ./start.sh).

Frequently asked questions

What usually comes up before installing.

What if the PC is off at the scheduled time?

Each fixed-time routine chooses "Skip this time" or "Run at boot", with the delay set in Settings. If several occurrences were missed, only the most recent one counts. Interval routines simply wait for the next slot.

Does a locked screen interrupt?

No. The app runs as a service of your user (a scheduled task on Windows, a LaunchAgent on the Mac), so it needs you logged in, but not an unlocked screen. If the computer boots and nobody logs in, the routines wait for the login.

What happens when the Claude or Codex usage limit runs out?

The routine tries up to three times. With "Switch agent automatically" on, it falls back to the other agent; off, it waits for the reset time. Attempts exhausted, it becomes a failure, and a failure becomes an e-mail.

How does the e-mail alert work?

In Settings, the Configure e-mail button opens a dialog: choose Gmail (with an app password, which needs two-step verification) or another SMTP server, the sending address and who receives the alerts. Saving tests the connection and shows Connected or the reason it failed, and the password goes to your system vault: DPAPI on Windows, the Keychain on macOS, the keyring on Linux. Every run that ends in failure produces an e-mail with the routine, the error and the panel link; success stays quiet. If you prefer, .env still works.

Is this safe? The agent runs with full access.

Yes, and on purpose: an agent routine runs Claude Code or Codex with --dangerously-skip-permissions, and a script routine runs any command, always inside the root folder you chose, checked by real path. The server listens only on 127.0.0.1, requires a password (scrypt) for everything beyond login and checks Host and Origin on every API request. Whoever has the panel password, or access to the app folder, controls your PC: treat the password like the password of your computer account.

Does it work on a Mac?

It does, in beta since 2026-09-15. The installer registers a LaunchAgent that starts the app at your login, the shortcut opens the panel in its own window and the e-mail password lives in the macOS Keychain. On every push the project runs on a real macOS machine: tests, build, the Chrome screen test and a real install followed by an uninstall. What only a Mac on a desk can prove (the first login, the Keychain prompt, an Intel Mac) is listed in the repository, in docs/runbooks/macos-primeira-execucao.md. Linux takes the same path, experimental, with systemd --user.

Does it depend on Syntax Ops or any other product?

No. Commercially it is an extension of Syntax Ops, SyntaxLab's panel for dispatching work to agents. Technically it is independent: its own repository, database and process, with no dependency on any other product.

Is there support?

It is an open-source project at version 0.1, in daily use by the author. Issues and pull requests are welcome on GitHub; there is no support channel with a deadline. What is verified, with command and output, lives in the plans under docs/plans/ in the repository, in Portuguese.

Start today

Next Monday at 09:00 can already run on its own.

Clone or download, run the installer, create the password and register the first routine. Or ask your agent to do it.

MIT · skill for Claude Code and Codex · changelog