Subroutine

The productivity app for monotropic brains

An executive function prosthetic that adapts to your mental state and surfaces the right actions exactly when you need them — not a wall of tasks to fight through.

Subroutine home screen showing mental state selection buttons
Mental state selection — analysis paralysis, overstimulated, hyperfocused, an intense emotion
Context-aware

How are you feeling right now?

Subroutine starts by asking how you're doing. Whether you're hyperfocused, overstimulated, or frozen by indecision — it adapts the queue to your current capacity, not your ideal one. No more pretending you can do everything on the list.

Pipeline view showing automatically scheduled actions
Smart scheduling

Your day, automatically organized

The pipeline schedules your actions intelligently. Floating actions drift toward the present — no manual sorting required. Static actions stay exactly where you pinned them. Miss something? It requeues automatically so nothing disappears into the void.

Action creator showing natural language input with syntax highlighting
Natural language input

Just type it

Type actions and events in plain language. Write dentist Thursday @2pm ~1h every month and Subroutine parses the date, time, duration, and recurrence on the fly — highlighting each component inline as you go. No forms, no dropdowns, no friction.

Routines view showing a morning routine with multiple steps
Workflows

Build your rituals

Define multi-step named routines — morning warmup, weekly review, project kickoff. Trigger them on demand and each step lands in your pipeline at the right time with the right duration. Recurring routines can even schedule themselves.

Open API

Fully automatable

Everything is accessible via a clean RESTful HTTP API. Script your workflows, build integrations, or hook Subroutine into your own tools.

Read the API docs →
# Fetch all your actions
http get https://api.subroutineapp.com/v1/data | get actions

# Complete an action
http post $"($server)/v1/actions/($id)/complete" {}

# Create a recurring action (every weekday)
http put $"($server)/v1/actions/(random uuid)" {
    title: "Daily standup"  state: {type: backlogged, date: null}
    recurrence: {unit: "days", every: 1}
}

Available everywhere

🖥 macOS
📱 Android
Wear OS
🔌 REST API