preciseactions

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

auth login
gh-scheduler auth login
add
gh-scheduler add --repo owner/repo --workflow ci.yml --cron "*/15 * * * *"
list
gh-scheduler list
get
gh-scheduler get <schedule-id>
update
gh-scheduler update <schedule-id>
delete
gh-scheduler delete <schedule-id>
pause
gh-scheduler pause <schedule-id>
resume
gh-scheduler resume <schedule-id>
run
gh-scheduler run <schedule-id>
history
gh-scheduler history <schedule-id>

Commands

Every command is shown with its purpose and usage. Click a section to expand it.

Install

Install the latest release with the one-line installer:

curl -fsSL https://raw.githubusercontent.com/manascb1344/preciseactions/master/install.sh | sh

Binaries are available for Linux and macOS on amd64 and arm64, published to GitHub Releases:

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 login

Your 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 list

In 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

FlagDefaultDescription
--api-urlhttp://localhost:8080Override the API server URL
--api-keyAPI key for authentication (alternative to auth login)

On this page