Repository navigation
v2.2.0 — Scheduled jobs on your Claude or ChatGPT plan, no runner container
Scheduled jobs run inside AICortex — on a Claude or ChatGPT plan or an API key, with
no runner container any more.
Added
- The runner is built in. Tick Runner on under Scheduled jobs → Set up the
runner and AICortex runs due jobs itself — no extra container, no key to copy.
It checks once a minute without a model. A Claude subscription token (claude setup-token) or an Anthropic key goes to Anthropic's Messages API (the token as
an OAuth bearer, no Claude Code needed); OpenRouter, OpenAI and Gemini keys go to
their OpenAI-compatible chat APIs. The model's tool calls go through/mcpas the
runner (an in-memory token), so roles, act-as and audit apply as for any caller.
Every model answer has a size limit and a five-minute deadline, so a provider
that never finishes can't hold up later jobs. - A ChatGPT plan as the runner's model access. Sign in with ChatGPT in the
runner setup uses OpenAI's sign-in for open-source apps: authorization code with
PKCE, the ID token checked against OpenAI's keys, the tokens encrypted in the
vault and refreshed by AICortex (an idle sign-in is renewed before its 30 days
run out). Jobs run through OpenAI's Responses API; the model can be left empty
for the account's first model, and the field suggests the account's models. A
usage limit stops the run with a link to the plan's usage page; Sign out
revokes the sign-in at OpenAI. A sign-in the vault can't store is revoked again
right away, and the audit log names the ChatGPT account that was attached.
Changed
- An Anthropic API key is one option in the runner setup; a setup saved with the
former second option (anthropic) is read as that one and runs via the Messages
API.
Removed
- The separate runner:
runner/,runner/generic/and the image
ghcr.io/ikarusmk/aicortex-runner(no longer built). The built-in runner does
their job. - Creating runner keys and the
runner_configtool — both existed only for the
separate runner. The model key now never leaves AICortex except to the model
provider. Runner keys already made andRUNNER_TOKENkeep working for an own
runner.
Fixed
- Two runners could run the same job twice.
cron_duenow hands a job to one
runner per scheduled minute.
Docs
- README Highlights and Autonomy & scheduling describe the built-in runner and
the ChatGPT plan;docs/clients.md,docker-compose.ymland.env.examplesay
thatRUNNER_TOKENis only for an own runner outside AICortex.
Upgrading
Pull ghcr.io/ikarusmk/aicortex:v2.2.0 and redeploy — no configuration changes are
needed. Then open Scheduled jobs → Set up the runner in the WebUI: choose the model
access, enter the key or sign in with ChatGPT, tick Runner on, save.
If you started the separate runner from 2.1.0 (ghcr.io/ikarusmk/aicortex-runner),
stop and remove it: it fetched its model access with runner_config, which is gone.