claude-code-scheduler
A GUI application and CLI tool that provides scheduling and management for Claude Code CLI sessions with REST API control.
Features
- Scheduling: Manual, interval, calendar, and file-watch triggers
- Data Model: Job → Task → Run hierarchy for organized workflows
- REST API: External control via HTTP (port 5679)
- Profiles: Environment configurations for AWS Bedrock, Z.AI, Anthropic API
- CLI: Full management via command line with agent-friendly help
- Export/Import: Backup and share job configurations
Quick Start
# Install
git clone https://github.com/dnvriend/claude-code-scheduler.git
cd claude-code-scheduler
uv tool install .
# Launch GUI
claude-code-scheduler gui
# Check health
curl http://127.0.0.1:5679/api/health
Headless Server Mode
Run as a headless server without GUI for CI/CD, containers, or daemon use:
# Launch headless server
claude-code-scheduler server
# With options
claude-code-scheduler server --port 8080 --workers 5
# Verbose logging
claude-code-scheduler server -v
| Option | Default | Description |
|---|---|---|
--port, -p |
5679 | REST API port |
--workers, -w |
3 | Max parallel jobs |
-v |
- | Verbose logging (-vv for debug) |
The server provides the same REST API as the GUI and supports parallel job execution.
Data Model
Job (1) → Task (many) → Run (many)
- Job: Container for related tasks with working directory
- Task: A Claude Code prompt with profile and schedule
- Run: Execution record with status and output
CLI Commands
# Jobs
claude-code-scheduler cli jobs list # List all jobs
claude-code-scheduler cli jobs create --name "Feature" --working-directory ~/projects/repo
claude-code-scheduler cli jobs run <job-id> # Start sequential execution
claude-code-scheduler cli jobs export <job-id> -o backup.json
claude-code-scheduler cli jobs import -i backup.json
# Tasks (use --zai or --bedrock shortcuts)
claude-code-scheduler cli tasks create \
--name "Code Review" \
--prompt "Review code for issues" \
--zai \
--job <job-id>
claude-code-scheduler cli tasks list
claude-code-scheduler cli tasks run <task-id>
# Runs
claude-code-scheduler cli runs list
claude-code-scheduler cli runs stop <run-id>
# Profiles
claude-code-scheduler cli profiles list
claude-code-scheduler cli profiles get <profile-id>
Profile Shortcuts
| Shortcut | Profile | Description |
|---|---|---|
--zai |
Z.AI API | Z.AI Claude API access |
--bedrock |
AWS Bedrock | AWS Bedrock Claude access |
Debug Commands
# File-based inspection (no GUI required)
claude-code-scheduler debug all # Complete state dump
claude-code-scheduler debug tasks # List all tasks
claude-code-scheduler debug runs # Recent runs
claude-code-scheduler debug settings # Current settings
REST API
# Health check
curl http://127.0.0.1:5679/api/health
# List resources
curl http://127.0.0.1:5679/api/jobs
curl http://127.0.0.1:5679/api/tasks
curl http://127.0.0.1:5679/api/runs
# Create task
curl -X POST -H "Content-Type: application/json" \
-d '{"name":"Test","prompt":"echo hi","profile":"<profile-id>"}' \
http://127.0.0.1:5679/api/tasks
# Run job
curl -X POST http://127.0.0.1:5679/api/jobs/{id}/run
Development
make install # Install dependencies
make test # Run tests
make lint # Run linting
make typecheck # Type checking
make pipeline # Full CI pipeline
Data Files
~/.claude-scheduler/
├── jobs.json # Job configurations
├── tasks.json # Task configurations
├── runs.json # Execution history
├── profiles.json # Environment profiles
├── settings.json # Application settings
└── logs/ # Per-run output logs
License
MIT License - see LICENSE
Author
Dennis Vriend - @dnvriend
Built with Claude Code
Metadata
Release files for claude-code-scheduler 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| claude_code_scheduler-0.3.0.tar.gz | 2.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claude_code_scheduler-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.5 MB
Release files / claude_code_scheduler-0.3.0.tar.gz
| Download URL | claude_code_scheduler-0.3.0.tar.gz |
|---|---|
| Size | 2.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
95bd626e5f4f7ceb9f01a151790d2ffbc60bd81b61823b949c50496328a8fdc9
|
|
BLAKE2b-256 checksum How to use checksums |
77cb2852b9f57bb17fb816ae8bcd6389e2ac907716df024ca8ffedf7bf6f1341
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 13, 2025.
Transparency logRelease files / claude_code_scheduler-0.3.0-py3-none-any.whl
| Download URL | claude_code_scheduler-0.3.0-py3-none-any.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
69e1cfdb39f0a382e9c6b0b89418640f576bb0c4faa413db83947ff9d957d3fc
|
|
BLAKE2b-256 checksum How to use checksums |
12102ce9b2e3013d43c51935c98700b77d34c28933a11517942ac198a7358e04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 13, 2025.
Transparency log