Tell Codex what to keep an eye on. A small probe watches it on your machine without spending tokens, and when something changes, Codex comes back to your conversation with what it found and what it did.
CI fails on main.Codex finds the cause and proposes a fix.
A training run finishes.Codex compares it with the last one.
An error shows up in your app log.Codex traces it to the code.
Your PR gets review comments.Codex addresses them.
claude plugin marketplace add hyprh/self-starter
claude plugin install self-starter@self-starter
macOS or Linux, Node.js 20 or newer, and the Codex app or CLI. Restart the Codex app; the first start sets up the rest.
macOS or Linux, Node.js 20 or newer, and Claude Code 2.1.224 or newer. Start a new session; the first start sets up the rest.
You · Jul 13
Watch NVDA for me. If it moves sharply, find out why and tell me. Sell when it reaches $235.
NVDA daily candles, Jul 13 to Oct 9, 2026 (Yahoo Finance), checked every 5 minutes while the market is open. The conversation is an example; selling needs a trading tool your agent can use, such as your broker's API.
Codex · Aug 27, 9:38 am
NVDA opened 6.3% higher, at $222.86, after yesterday's earnings: revenue of $96.2 billion, up 106% from a year ago and above what analysts expected, and an outlook of $108 billion for this quarter.
Codex · Oct 2, 9:36 am
NVDA opened at $236.06, above your $235 line, so I sold your shares at market. I'll keep watching it for big moves.
See it in action
Keep working. The result finds you.
A Futu watch runs in the background. When a move stands out, Codex investigates it and Self-Starter brings the result to your desktop.
The result finds you.
SELF-STARTER / DESKTOP NOTIFICATION
AMD down 4.31%.
Investigation ready in Codex.
A 26-second Codex + Futu example. Edited replay; the interface and desktop notification are illustrated, and quotes are historical.
“Tell me when the training run finishes.” “If the dev server stops answering, restart it.” Plain words, in any Codex threadClaude Code session.
A probe keeps watch
Codex writes a few lines of TypeScript that read a file, run a command or call an API, tries them once and starts them. They run on your machine on a schedule, with no model and no tokens.
Codex reacts and reports
When it happens, the task comes back to the same conversation. If Codex is closed, Self-Starter opens the thread in the background, so the answer is waiting for you. A notification or an email tells you.
When it happens, the task comes back to the same session, as soon as Claude is done with what it is doing. If no terminal has the session open, Self-Starter resumes it in the background, so the answer is waiting for you. A notification or an email tells you.
Seven real runs
Recorded on October 12 and 13to 14, 2026. Each line is what the probe reported, unedited; times are UTC.
A training run finishes
local file
“When the run in runs/exp42 finishes, compare it with exp41 and tell me which to keep.”
running: epoch 1/3 loss 0.912 val_loss 0.874
finished: Finished training in 3h12m best val_loss 0.412 (epoch 3) · fired
Then Codex compares the two runs and says which one to keep.
An error shows up in the app log
local file
“When a new error shows up in logs/app.log, find the cause and propose a fix.”
0 error(s) in logs/app.log
ERROR POST /api/orders 500 TypeError: Cannot read properties of undefined (reading 'id') · fired
Then Codex reads the stack trace and the code it points to, and proposes a fix.
The dev server stops answering
local service
“If the dev server on port 3000 is down for two minutes, find out why and restart it.”
http://127.0.0.1:3000/health answered 200 in 8 ms
http://127.0.0.1:3000/health did not answer: Connection refused (os error 111) · fired after 20 s down
Then Codex reads the server log, fixes what it can and starts it again (this trigger gives Codex full access).
A new invoice lands in a folder
local folder
“When a new invoice PDF lands in invoices/, add its date, vendor and amount to expenses.csv.”
2 invoice(s) in invoices
new file: 2026-10-acme-cloud.pdf (184 KB) · fired
Then Codex reads the PDF and adds the row.
A dependency ships a new version
npm registry
“When TypeScript's nightly build is out, type-check this project with it and tell me what would break.”
typescript@next: 7.1.0-dev.20261012.1
typescript 7.1.0-dev.20261013.1 is out · fired
Then Codex installs it in a scratch copy, runs tsc and lists what would break.
CodexClaude Code comes up on Hacker News
Hacker News search
“When Codex comes up on Hacker News, sum up what people say about it and list any bug reports.”
“When Claude Code comes up on Hacker News, sum up what people say about it and list any bug reports.”
35 mention(s) of Claude Code on Hacker News in the last 24 h, in 22 thread(s)
new thread on “Show HN: Evaluate and improve your agent steering” · fired
72 mention(s) of Codex on Hacker News in the last 24 h, in 19 thread(s)
comment on “Where is all the new, good software?” · fired
Then Codex reads the thread and sums up what people like, what they don't, and any bug reports, with links.
Analysts change their view on a stock
Futu news search
“Tell me when analysts change their rating or price target on Tencent or NVIDIA, and what the community thinks.”
1 item(s) from the last 48 h on Futu (Tencent 1, NVDA 0)
“Morgan Stanley: Maintains "Overweight" rating on Tencent (00700) with a target price of HKD 550…”
counts as seen; the next report fires
Then Codex reads the new report with Futu's skills (stock digest, community sentiment) and sums up what changed. A ready-made recipe: futu-news.
More to try
One sentence each. A probe needs only what it reads: gh for GitHub, nvidia-smi for a GPU.
“Whenever CI fails on main, find the cause and propose a fix.”gh run list
“When my PR gets review comments, address them and push.”gh pr view
“When tonight's benchmark is 5% slower, find the commit.”results file
“If the disk gets 90% full, find what grew and what can go.”df
“When the GPU is idle for 10 min, start the next experiment.”nvidia-smi
“When a speculative decoding paper hits arXiv, sum it up.”arXiv API
Results by email
Give your address and an app password; Gmail, iCloud, Yahoo, Fastmail, QQ, 163, 126 and Aliyun are filled in for you, and a test email goes out right away.
self-starter channel email you@gmail.com
Good to know
Probes run as you, like a script you run. probe.access: sandbox limits one to the web hosts it lists, with no files and no commands.
Codex asks before starting a trigger that acts for you. What a probe reports reaches Codex as untrusted data, and a turn handling a fire cannot create or change triggers.
Background runs use Codex's workspace-write sandbox unless a trigger asks for full access, and Codex runs at most 20 times a day by default.
Background runs get a permission mode from the trigger: by default Claude may edit files in its folder, and what would need your approval, such as most commands, is declined. A trigger can ask for full access. Claude runs at most 20 times a day by default.
A fire never interrupts a turn. If you stopped Claude with Esc, which Claude Code does not report, the fire comes in once the session has been quiet for 15 minutes.
Conditions are checked in code, so judgment calls such as “news about an acquisition” are not supported yet. Windows is not supported.
Tested end to end on Linux and macOS with the Codex CLI and app server. How the Codex desktop app shows these threads still needs a check on a Mac.
Tested end to end on Linux and macOS with the Claude Code CLI in a terminal. The desktop app and the editor extensions are not checked yet.