CLI
Use the gh-scheduler command-line tool to create, list, pause, and run schedules.
CLI
Use the gh-scheduler CLI to create, list, pause, and run schedules from your terminal.
Quick reference
gh-scheduler auth logingh-scheduler add --repo owner/repo --workflow ci.yml --cron "*/15 * * * *"gh-scheduler listgh-scheduler get <schedule-id>gh-scheduler update <schedule-id>gh-scheduler delete <schedule-id>gh-scheduler pause <schedule-id>gh-scheduler resume <schedule-id>gh-scheduler run <schedule-id>gh-scheduler history <schedule-id>Install
Install the latest release with the one-line installer:
curl -fsSL https://raw.githubusercontent.com/manascb1344/preciseactions/master/install.sh | shBinaries are available for Linux and macOS on amd64 and arm64, published to GitHub Releases:
Linux · amd64
gh-scheduler_{version}_linux_amd64.tar.gz
Linux · arm64
gh-scheduler_{version}_linux_arm64.tar.gz
macOS · amd64
gh-scheduler_{version}_darwin_amd64.tar.gz
macOS · arm64
gh-scheduler_{version}_darwin_arm64.tar.gz
Each release also ships a checksums.txt so you can verify downloads with sha256sum -c.
Authenticate
The CLI authenticates with GitHub OAuth — no personal access tokens to manage.
Run the login command:
gh-scheduler auth loginYour browser opens to GitHub's OAuth authorization page. Approve the PreciseActions app.
GitHub redirects to a local callback URL and the CLI stores your JWT session in ~/.gh-scheduler.
You're authenticated. Run any schedule command:
gh-scheduler listIn headless environments (SSH, containers) the CLI prints a URL to visit manually and prompts you to paste the authorization token instead of opening a browser.
Alternatively, you can pass an API key directly with the --api-key global flag — no interactive login needed.
Examples
Run CI every 15 minutes
gh-scheduler add --repo owner/repo --workflow ci.yml --cron "*/15 * * * *"Weekday morning deploy
Create a schedule with a timezone and custom name so it fires at 9am in your team's local time:
gh-scheduler add --repo owner/repo --workflow deploy.yml \
--cron "0 9 * * 1-5" \
--timezone "America/New_York" \
--name "Weekday morning deploy"Manage an existing schedule
Update a cron expression, pause for a maintenance window, then resume and trigger an immediate run:
gh-scheduler update <schedule-id> --cron "0 */2 * * *"
gh-scheduler pause <schedule-id>
gh-scheduler resume <schedule-id>
gh-scheduler run <schedule-id>
gh-scheduler history <schedule-id>Global flags
| Flag | Default | Description |
|---|---|---|
--api-url | http://localhost:8080 | Override the API server URL |
--api-key | — | API key for authentication (alternative to auth login) |