Catalog npm
PACKAGE EXPLORERView in registry

9to5

npm

Automated agents for Claude Code

Versions collected14
Direct dependencies8From release 0.5.0
Last observed20 Oct, 21:42 UTC

README

Current package documentation

9to5

Automated agents for Claude Code.

Agents that run on your schedule, from a webhook, or on demand. They stay under budget and report back to your inbox.

Agents: for complete option references and scheduling examples, read skills/9to5/SKILL.md or install the skill with npx skills add Michaelliv/9to5. You should run 9to5 onboard to add instructions to ~/.claude/CLAUDE.md.

What people automate

The examples/ directory has ready-to-import agents:

9to5 agent import examples/morning-briefing.json
ExampleScheduleWhat it does
Morning briefingDaily 7amSummarize last 24h of commits, PRs, issues, CI status
Security scanDailyCheck recent commits for hardcoded secrets and vulnerability patterns
Test gap finderNightlyFind untested code in recent commits, suggest test skeletons
API contract watchdogEvery 2hHit API endpoints, compare responses to spec, flag drift
Project health checkEvery 6hRun tests, measure build times, track repo metrics over time
Ecosystem watchEvery 12hCheck for new releases of dependencies and breaking changes
Reddit trend scoutEvery 4hScout trending posts and draft blog content
TODO trackerWeeklyInventory TODO/FIXME comments, track additions and removals
Stale branch archaeologistWeeklyAssess old branches and recommend which are safe to delete
Dependency deep auditWeeklyAnalyze actual usage of deps, flag unmaintained or replaceable ones
Refactor spotterWeeklyFind emerging code patterns worth extracting
License complianceWeeklyScan dependency tree for copyleft or problematic licenses
Drift detectorDailyCompare IaC config against actual running state
Competitor comparisonWeeklyResearch competitors and generate comparison docs via worktree PR

Install

Requires Claude Code installed and authenticated.

npm install -g 9to5

Or run without installing:

npx 9to5 <command>

Quick start

# Create an agent that runs daily at 9am
9to5 agent add "morning-review" \
  --prompt "Review yesterday's commits and summarize changes" \
  --rrule "FREQ=DAILY;BYHOUR=9" \
  --model sonnet \
  --max-budget-usd 0.25

# Run it now to see what you get
9to5 agent run <id>

# Browse everything in the TUI
9to5 ui

Why not just cron + claude -p?

You could. 9to5 adds what you'd end up building yourself:

  • Budget caps per agent - it won't burn your API credits overnight
  • Run history with cost and duration - see what each agent cost and how long it worked
  • Inbox - read/unread notifications so you know what happened while you were away
  • Session resume - pick up where an agent left off with resume <run-id>
  • Interactive TUI - browse, run, pause, delete, and drill into output without leaving the terminal. The daemon auto-starts and self-heals.
  • Export/import - share agents as JSON, bring them to another machine
  • Model and system prompt per agent - different personas for different jobs

Commands

Agent management (9to5 agent)

CommandDescription
9to5 agent add <name>Create a new agent
9to5 agent edit <id>Edit an existing agent
9to5 agent listList your agents
9to5 agent run <id>Run an agent now
9to5 agent remove <id>Remove an agent (--force to permanently delete)
9to5 agent restore <id>Restore a deleted agent
9to5 agent hide <id>Hide an agent from list and TUI views
9to5 agent unhide <id>Unhide a hidden agent
9to5 agent list --deletedList deleted agents
9to5 agent export [id]Export agent(s) as JSON
9to5 agent import <file>Import agent(s) from JSON

Runs & inbox

CommandDescription
9to5 runs [agent-id]View run history
9to5 resume <run-id>Resume the Claude Code session from a previous run
9to5 inboxCheck your inbox

Daemon (9to5 daemon)

CommandDescription
9to5 daemon startStart the background daemon
9to5 daemon stopStop the background daemon

Webhooks (9to5 webhook)

CommandDescription
9to5 webhook infoShow webhook configuration and URLs
9to5 webhook refreshRegenerate the webhook secret
9to5 webhook enableEnable webhook triggers
9to5 webhook disableDisable webhook triggers
9to5 webhook url <id>Print trigger commands for an agent

Other

CommandDescription
9to5 onboardAdd 9to5 instructions to ~/.claude/CLAUDE.md
9to5 uiLaunch the interactive TUI dashboard

TUI dashboard

Launch with 9to5 ui for a two-panel terminal dashboard:

  • Agents - browse, run, pause, and delete with a detail panel showing prompt, schedule, and config
  • Runs - drill into an agent to see execution history with status, duration, cost, and structured output
  • Hotkeys - r run, p pause/resume, dd delete (with u to undo), c copy output, ⏎ toggle read, q quit

Webhooks

Trigger agents from GitHub Actions, CI, Zapier, or any script. Two trigger paths — local HTTP and remote via ntfy.sh — both secured with HMAC-SHA256 signing. No infrastructure, no dependencies, completely free.

Webhooks are enabled by default — the daemon auto-generates a secret on first start. Use webhook disable to turn them off.

# View webhook config and URLs
9to5 webhook info

# Get ready-to-use curl commands for an agent
9to5 webhook url <agent-id>

# Regenerate the secret (breaks existing integrations)
9to5 webhook refresh

Local trigger — POST to http://localhost:9505/trigger/<id> with a signed body and X-Signature header. Works for scripts on the same machine or in your local network.

Remote trigger — POST to the ntfy.sh URL shown by webhook info. The daemon subscribes via SSE. Works from anywhere — CI, GitHub Actions, other machines.

Both paths verify HMAC-SHA256 signatures and reject messages older than 5 minutes.

# Example: trigger from a script
SECRET='<your-webhook-secret>'
BODY='{"automation_id":"<id>","ts":'$(date +%s000)'}'
SIG=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //')

# Local
curl -X POST http://localhost:9505/trigger/<id> \
  -H "Content-Type: application/json" \
  -H "X-Signature: $SIG" \
  -d "$BODY"

# Remote (ntfy)
curl -X POST <ntfy-url> \
  -H "Content-Type: application/json" \
  -d '{"payload":"'"$BODY"'","sig":"'"$SIG"'"}'

Data

All data is stored locally in ~/.9to5/ (SQLite database, daemon PID file, and webhook secret).

Docs

Landing page at michaelliv.github.io/9to5. For agent-friendly option references and scheduling examples, see skills/9to5/SKILL.md.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 14

Collected releases
VersionPublishedDirect dependenciesOpen version
0.5.0Registry latest13 Feb 20268
0.4.19 Feb 20268
0.4.09 Feb 20268
0.3.08 Feb 20268
0.2.18 Feb 20268
0.2.08 Feb 20262
0.1.88 Feb 20262
0.1.77 Feb 20263
0.1.66 Feb 20263
0.1.56 Feb 20263
0.1.46 Feb 20263
0.1.36 Feb 20263
0.1.25 Feb 20263
0.0.15 Feb 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
michaelliv/9to5

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:42 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:d44b33e76eb0aab955d232c97ef2216df5452fe0871d69603c06e632b4699699