Agent skill

Jobs

by physiclaw in physiclaw/PhysiClaw

A skill your agent uses when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job.

MITAuto-check passedProductivity & Automation

Install Jobs

skills CLI
$ npx skills add physiclaw/PhysiClaw --skill jobs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install physiclaw/PhysiClaw jobs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/physiclaw/PhysiClaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/physiclaw/agent/claude/skills/jobs .claude/skills/jobs && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
jobs
GitHub stars
389
Token cost
~1.1k tokens
SKILL.md length
421 words
Files
2
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job.

  • Works in 2 steps: jobs.py finish --id --status cancel… → jobs.py create --id … (use a fresh id —…
  • The task involves scheduling future work — any remind me at …
  • SKILL.md covers Create a job, List jobs, Get one job and Finish a fired job, plus 2 more sections
  • Runs Python scripts from its folder; calls uv

What it does

Jobs is an agent skill from physiclaw/PhysiClaw. Use when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job. Also use to reschedule or list jobs. NOT for one-off in-session waits. NEVER edit jobs.md by hand (the cron parser is strict).

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `jobs.py`).

It sits in Productivity & Automation, covering Scheduled and recurring tasks. The repository describes itself as: The AI agent that physically operates a phone — the way you do. The licence is MIT.

When your agent uses it

  • The task involves scheduling future work — any remind me at …
  • Every weekday …
  • Check again in 30 min
  • Closing a fired cron job

Example prompts

  • “remind me at …”
  • “every weekday …”
  • “check again in 30 min”
  • “/jobs”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. jobs.py finish --id --status cancel --recap "rescheduling — new id "
  2. jobs.py create --id … (use a fresh id — bump the date, or

What it can do on your machine

Read from SKILL.md and the folder at commit 333ddda. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Jobs loads about 1.1k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 421 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from physiclaw/PhysiClaw at commit 333ddda, republished under its MIT licence (© physiclaw). 421 words, ~1,098 tokens.

Download SKILL.mdSave it as .claude/skills/jobs/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
jobs
description
Use when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job. Also use to reschedule or list jobs. NOT for one-off in-session waits. NEVER edit jobs.md by hand (the cron parser is strict).

Jobs

Durable scheduled work lives in ~/.physiclaw/jobs/jobs.md. The format is regex-parsed by the cron loop — a malformed field breaks every scheduled job in the file. Never edit jobs.md directly.

All job operations go through a single CLI:

bash
uv run python "$SKILL_DIR/jobs.py" <subcommand> [args]

Four subcommands: create, list, get, finish. Each is a thin wrapper around the canonical engine module — the file format stays invariant no matter what you pass.

$SKILL_DIR is provided by Claude Code; it resolves to the directory containing this SKILL.md.


Create a job

bash
uv run python "$SKILL_DIR/jobs.py" create \
  --id <user>-<topic>-<YYYY-MM-DD> \
  --kind <one-time|periodic> \
  --schedule "<5-field cron>" \
  --description "<human text>" \
  --context "<what the next wake needs to know>"
  • --kind defaults to one-time if omitted.
  • --schedule: standard 5-field cron min hour dom mon dow. Day- of-week is 0=Sun, 6=Sat. All times are naive local time. Examples:
    • Every weekday at 09:00 → "0 9 * * 1-5"
    • At 14:30 on 2026-05-01 → "30 14 1 5 *" (combined with a matching one-time kind)
    • In 30 minutes (compute wall-clock now + 30m yourself): "M H D Mo *" where M/H/D/Mo are the computed minute/hour/day/month.
  • --context: at least 10 characters. Write what the next wake needs to do — the engine injects this into the SYSTEM prompt when the job fires.

Id format: <user>-<topic>-<YYYY-MM-DD>. Lowercase letters, digits, hyphens only. The date suffix keeps repeat ids (alice-water-plants-…) unique across days without -v2 churn.

On duplicate id (even terminal), the command errors — pick a fresh id.

Example
bash
uv run python "$SKILL_DIR/jobs.py" create \
  --id alice-water-plants-2026-05-01 \
  --schedule "0 9 1 5 *" \
  --description "Remind Alice to water the kitchen plants." \
  --context "Send Alice a friendly reminder via WeChat to water the kitchen herbs."

List jobs

bash
uv run python "$SKILL_DIR/jobs.py" list [--status pend|fired|done|fail|cancel|all]

Default is all. Prints one job per line with id, status, kind, schedule, next fire, and short description.

Common recovery move: start a wake with jobs.py list --status fired to find orphaned fired jobs from earlier wakes that you need to close.


Show full SKILL.md (172 more words)Show less

Get one job

bash
uv run python "$SKILL_DIR/jobs.py" get --id <id>

Prints every field (description, type, status, schedule, context, all timestamps, execution result). Use when the one-liner from list isn't enough.


Finish a fired job

bash
uv run python "$SKILL_DIR/jobs.py" finish \
  --id <id> --status <done|fail|cancel> --recap "<one-line outcome>"
  • done — work complete.
  • fail — blocked or impossible.
  • cancel — no longer needed, or you're rescheduling (do cancel + new create with a fresh id).

For periodic jobs, done/fail automatically reset to pend so the next cycle fires. Only cancel is permanent for periodic.

Errors on already-terminal jobs (re-finishing is a bug, not idempotent).


Reschedule = cancel + create

There is no update. Jobs are append-only; their only state change is finishing them. To reschedule:

  1. jobs.py finish --id <old> --status cancel --recap "rescheduling — new id <new>"
  2. jobs.py create --id <new> … (use a fresh id — bump the date, or append -v2 if same-day)

WAIT close pattern

When closing with >> WAIT - <reason>, pair it with a fresh job for the resume check. Otherwise the engine auto-schedules a generic 15-min follow-up — usually wrong for your situation. Only fall back to that if you genuinely don't know when to check back.

Example:

bash
uv run python "$SKILL_DIR/jobs.py" create \
  --id alice-confirm-order-2026-05-01 \
  --schedule "$(date -v +30M '+%M %H %d %m') *" \
  --description "Re-check IM: user said they'd confirm in ~30min." \
  --context "Alice reviewed cart before leaving for a meeting; re-open WeChat and look for her OK to place the order."

© physiclaw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in src/physiclaw/agent/claude/skills/jobs of physiclaw/PhysiClaw.

  • SKILL.md
  • jobs.py

Open the folder on GitHubat commit 333ddda

Compare with similar skills

Jobs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Jobs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jobs this skillphysiclaw/PhysiClaw389—~1.1kAutomated safety check: PassMIT
ScheduleTinyAGI/tinyagi3.6k—~1.4kAutomated safety check: PassMIT
Send User MessageTinyAGI/tinyagi3.6k—~829Automated safety check: PassMIT
Cron Opsczl9707/build-your-own-openclaw1.9k—~593Automated safety check: PassMIT
X Bookmarkssharbelxyz/x-bookmarks289—~2kAutomated safety check: NotesNone
Wp Wpcli And OpsAutomattic/agent-skills2112 repos~988Automated safety check: PassNone

Similar skills

  • Schedule

    TinyAGI/tinyagi

    Create, list, and delete scheduled tasks (recurring or one-time) that send messages to agents.

    3.6k GitHub stars~1.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Send User Message

    TinyAGI/tinyagi

    Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).

    3.6k GitHub stars~829 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Cron Ops

    czl9707/build-your-own-openclaw

    Create, list, and delete scheduled cron jobs. An agent skill from czl9707/build-your-own-openclaw.

    1.9k GitHub stars~593 tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed
  • X Bookmarks

    sharbelxyz/x-bookmarks

    Fetch, summarize, and manage X/Twitter bookmarks via bird CLI or X API v2.

    289 GitHub stars~2k tokensUpdated 7 mo ago
    Productivity & AutomationAuto-check: notes
  • Wp Wpcli And Ops

    Automattic/agent-skills

    A skill your agent uses when working with WP-CLI (wp) for WordPress operations: safe search-replace, db export/import, plugin/theme/user/content management, cron, cache flushing, multisite, and…

    211 GitHub starsUsed in 2 repos~988 tokens
    Productivity & AutomationAuto-check passed
  • Ohdear

    ohdearapp/ohdear-cli

    Manage Oh Dear website monitoring using the ohdear CLI. An agent skill from ohdearapp/ohdear-cli.

    141 GitHub stars~1.1k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed

More from physiclaw/PhysiClaw

  • Jd

    physiclaw/PhysiClaw

    Shop on the 京东 (JD) app. An agent skill from physiclaw/PhysiClaw.

    389 GitHub stars~558 tokensUpdated yesterday
    Auto-check passed
  • Screen Layout

    physiclaw/PhysiClaw

    First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons.

    389 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Taobao

    physiclaw/PhysiClaw

    Shop on the 淘宝 (Taobao) app. An agent skill from physiclaw/PhysiClaw.

    389 GitHub stars~137 tokensUpdated yesterday
    Auto-check passed

Questions about Jobs

What does Jobs do?

A skill your agent uses when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job. Jobs is an agent skill from physiclaw/PhysiClaw. Use when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job.

When should I use Jobs?

Jobs fits situations like: the task involves scheduling future work — any remind me at …; every weekday …; check again in 30 min; closing a fired cron job.

How do I install Jobs in Claude Code?

Run `npx skills add physiclaw/PhysiClaw --skill jobs -a claude-code`. Or copy the skill folder (src/physiclaw/agent/claude/skills/jobs in physiclaw/PhysiClaw) into .claude/skills/jobs in your project. Claude Code loads it when a task matches its description.

How do I install Jobs in Codex?

Run `npx skills add physiclaw/PhysiClaw --skill jobs -a codex`. Or copy the skill folder (src/physiclaw/agent/claude/skills/jobs in physiclaw/PhysiClaw) into .agents/skills/jobs in your project. Codex loads it when a task matches its description.

Can I use Jobs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add physiclaw/PhysiClaw --skill jobs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jobs, .gemini/skills/jobs, .github/skills/jobs and .opencode/skills/jobs in your project.

What does Jobs need to run?

Going by SKILL.md and its folder, Jobs needs Python for the scripts in its folder and the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does Jobs access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Jobs safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Jobs use?

Jobs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jobs use?

About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Jobs?

Skills that share tags, products or a category with Jobs: Schedule (TinyAGI/tinyagi, 3.6k stars), Send User Message (TinyAGI/tinyagi, 3.6k stars), Cron Ops (czl9707/build-your-own-openclaw, 1.9k stars) and X Bookmarks (sharbelxyz/x-bookmarks, 289 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jobs?

physiclaw (a GitHub user) maintains it in physiclaw/PhysiClaw, which has 389 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 10, 2026.

Source: physiclaw/PhysiClaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.