Open Source · MIT Licensed

Claude Code
becomes a task engine.

Drop a YAML file. TaskSmith assembles your context, invokes Claude Code, validates the output, retries until tests pass, and pings you when it's done.

$ npm install -g tasksmith-cli [CLICK TO COPY]
then: tasksmith setuptasksmith run
~/my-api — tasksmith v0.3.1
tasksmith submit -t ralph-loop \
-p "Add input validation to /users" \
--project my-api
 
■ TASK SUBMITTED
ID: task-20250217-a3f9c1
Template: ralph-loop
Model: sonnet
Queue: 1 of 1
 
// 3 minutes later, your phone buzzes:
✓ COMPLETE — passed after 2 iteration(s)
npm test ■ ALL PASSING
sys.capabilities

Everything Claude Code
should have been.

The orchestration layer that turns a single-shot CLI into an autonomous coding agent.

01 // CONTEXT

Compiled Prompts

SOUL.md, USER.md, conventions, memory, and project context automatically assembled into every prompt. Claude always has full context. You never repeat yourself.

02 // VALIDATION

Ralph Loop

Define a validation command. TaskSmith runs Claude Code, checks output, feeds errors back, retries. Iterate until npm test passes.

03 // PERSISTENCE

Three-Tier Memory

Hot memory loads every prompt. Warm JSONL logs are searchable. Cold archives compressed. Claude remembers across tasks — decisions, preferences, patterns.

04 // COMMS

Notifications Everywhere

Discord, Slack, ntfy.sh, email, webhooks. Know when tasks finish. Get results on your phone while doing something else.

05 // INPUT

Inbound Commands

Submit tasks from Discord, REST API, or file drop. @forge fix the auth bug in my-api parses to a task with the right template and priority.

06 // EXTEND

Plugin System

npm install tasksmith-plugin-*, add one line to config. A plugin is a function — not a framework. npm is the package manager.

task.pipeline

How a task flows.

From YAML to passing tests in minutes, not hours.

01

Submit

YAML file, Discord message, REST API, or CLI command

02

Assemble

Soul + user + conventions + memory + project into one prompt

03

Execute

Claude Code runs with full context in your project directory

04

Validate

Run test suite. If it fails, feed errors back and retry

05

Notify

Push to Discord, Slack, phone. Archive to memory

2,900
Lines of TypeScript
0
External frameworks
7
Built-in templates
10
Comm providers
plugins.api

npm is the
plugin manager.

No custom registry. No magic. A plugin is a function that receives a context object.

// tasksmith-plugin-proxmox/index.js
export default function proxmoxPlugin(forge, opts) {
  forge.addOutboundProvider(
    new ProxmoxNotifier(opts)
  );

  forge.addTemplate(
    "proxmox-provision",
    "./templates/provision"
  );

  forge.addHook("afterTaskExecute",
    async (data) => {
      forge.log.info(`Done: ${data.taskId}`);
  });
}
1

Install

npm install tasksmith-plugin-proxmox

2

Configure

One line in tasksmith.yaml:
plugins: [tasksmith-plugin-proxmox]

3

Done

Templates, providers, and hooks available immediately. Zero engine changes.

+

Scaffold Your Own

tasksmith plugin create my-thing
Complete publishable plugin in seconds.

SysOp

Matt

Software architect from Birmingham, AL. Built TaskSmith because OpenClaw's 430k lines were too many and Claude Code's zero orchestration wasn't enough. This is the middle ground — lightweight, opinionated, and actually useful.