Start a Session on a clock, by hand, or from another service.
After this page, you can save a scheduled task, see each run in its history, and, on Cloud Pro, start it from a webhook without starting it twice.
Checked against the product on 6 October 2026
Latest release: Clawdline v2.9.0 · platform support
Before you start
- Schedules are free and local. They run on macOS and Linux, where the daemon can open a Session in tmux.
- The daemon must be running when a schedule is due. See Install to keep it running.
- The console is in Traditional Chinese only. Labels are shown as they appear, with their meaning in parentheses.
Run a Session on a schedule
- Open the Session list. Schedules are the 排程 (Schedules) fold at its bottom.
- Press + (新增排程, new schedule).
- Fill in 標題 (title), 時間 (time), 星期 (days), 專案 (project), 助理 (Claude Code or Codex), and 第一則訊息 (first message). Tick 不設時間——只由 webhook 或手動執行 for a task the clock never starts.
- Optional, under 更多 (more): 失敗時通知我 (notify me on failure, on by default), 錯過了,幾小時內還要補跑 (catch-up window, default 6 hours), 跑多久沒完就放棄(分鐘) (timeout, default 30), and the model. For Codex, the model field is Codex 推理強度 (Codex reasoning effort).
- Press 建立 (create). Nothing is scheduled until you do.
Expected result: the schedule is a row in the fold. Click it for its history, and press 立即執行 (run now) to try it: a new Session opens with the first message.
If the daemon was not running at the due time, the latest missed run starts once when it comes back, if that is inside the catch-up window. Older runs are never replayed. Outside the window, the run is recorded as missed and you are notified. A Session may create a one-time schedule by itself; a repeating one needs your explicit instruction sent through Clawdline.
Pause or delete: click the row, then 編輯排程 (edit schedule). Turn 啟用 (enabled) off and save to pause; 刪除 (delete) removes it with no undo.
Start a schedule from a webhook
- At app.clawdline.com, open the machine's Session list and click the schedule's row.
- Under 雲端 Webhook (Cloud webhook), press 產生 Webhook (generate), then 複製網址 (copy URL).
The URL is shown once. Anyone who has it can start the schedule, so store it as a secret: never in source code, an issue, a log, or a screenshot.
Call it
Send HTTP POST. Opening the URL in a browser sends GET and starts nothing.
The body is empty, {}, or {"deliver_within_seconds": N} with N from 10
to 86400; at most 64 bytes. With N, a run your machine has not taken within N seconds is void and
never starts later. Without it, the limit is 24 hours.
The body is never passed to the agent. A webhook only says "run it now"; to change the task, edit the schedule.
This zsh example reads the URL from a hidden prompt, so your shell history never holds it:
read -rs "CLAWDLINE_SCHEDULE_WEBHOOK_URL?Paste the copied URL, then press Return: "
export CLAWDLINE_SCHEDULE_WEBHOOK_URL
printf '\n'
curl --request POST "$CLAWDLINE_SCHEDULE_WEBHOOK_URL" \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: request-001' \
--data '{}'
unset CLAWDLINE_SCHEDULE_WEBHOOK_URL Retry safely: send an Idempotency-Key of 1–200 printable ASCII characters,
and reuse it when you retry the same request. The same key never starts a second run. Without
a key, every call is a new run.
GitHub Actions example
Save the URL as the repository secret CLAWDLINE_SCHEDULE_WEBHOOK_URL. Each workflow run gets its own key; its retries reuse it.
- name: Start the Clawdline schedule
env:
CLAWDLINE_SCHEDULE_WEBHOOK_URL: ${{ secrets.CLAWDLINE_SCHEDULE_WEBHOOK_URL }}
run: |
curl --fail-with-body --retry 2 --retry-all-errors \
--request POST "$CLAWDLINE_SCHEDULE_WEBHOOK_URL" \
--header "Idempotency-Key: clawdline-gh-${{ github.run_id }}" \
--header 'Content-Type: application/json' \
--data '{}' Read the outcome
HTTP 202 (state ingress_accepted) means Clawdline Cloud durably accepted the
request, not that the run happened. The response's delivery_id names it:
GET the same URL followed by /deliveries/<delivery_id> to read where it is.
The schedule's 雲端 Webhook section shows the same stages as a receipt timeline:
| Stage | What it proves |
|---|---|
ingress_accepted | Cloud stored the request. |
mac_durable_accepted | Your machine took it; the run may not have started yet. |
task_execution_terminal | The run ended; read its outcome. |
expired / canceled | It never ran: the deadline passed, or the webhook was disabled first. |
To start a run and wait for its end from a script, use clawdline webhook fire. It needs no daemon and reads the URL from a file, never an argument:
clawdline webhook fire --url-file ~/.config/deploy-webhook-url It exits 0 on success, 1 on failure, 2 if the run never reached your machine, 3 if it was refused, and 4 if it gave up waiting.
Rotate or disable
- 輪替網址 (rotate URL) invalidates the old URL at once. Do this if the URL leaked or you lost it.
- 停用 Webhook (disable) refuses new calls and cancels requests your machine has not taken. Accepted runs continue.
On Free, an existing webhook is paused; activating it again needs Pro.
If a call fails
| Answer | What to do |
|---|---|
| No response | Retry with the same Idempotency-Key. |
400 / 413 | Fix the body: only the forms above, at most 64 bytes. |
403 pro_required | The account is on Free. |
404 webhook_unavailable | The URL was rotated or disabled, or too many calls came from one address. Use the current URL and slow down. |
429 | Wait for Retry-After, then retry with the same key. |
Where to go deeper
- Scheduled tasks and webhooks — the product repository's guide, with every field.
- Connect Clawdline Cloud — sign the machine in and pair a browser first.