Tlon workflow doctor
SkillAI & modelsDiagnoses and fixes missing or outdated setup tools needed to run mobile agent workflows in the tlon-apps repo.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Tlon workflow doctor skill
About this skill
Use when setting up a machine for mobile agent work on this repository, when the tlon-workflow skill's prerequisite check fails, or when stim, agent-device, gh, or their skills are missing, outdated, or installed under an old name.
What this skill tells your AI
The instructions your AI receives, as published by tloncorp/tlon-apps in .agents/skills/tlon-workflow-doctor/SKILL.md and read by ahel’s review.
One script checks everything the mobile agent loop depends on, and installs what it can.
node .agents/skills/tlon-workflow-doctor/check.mjs # report
node .agents/skills/tlon-workflow-doctor/check.mjs --fix # install and re-check
Run it unsandboxed, from the repository root (the path above is relative to it). It exits 0 when every line is ok or note, and 1 while any line says fix.
Unsandboxed because gh auth status cannot reach the keyring inside a shell sandbox and reports a false not authenticated. It always inspects the source checkout, even when run from a worktree's copy: that is where apps/tlon-mobile/.env.local lives, and stim worktree warm copies it from there.
What it checks
| Line | Requirement | --fix does |
|---|---|---|
gh | 2.99.0 or newer (the --attach upload flag), authenticated | nothing; prints the install or gh auth login line |
stim | the stim package, 1.1.0 or newer, resolved first on PATH; a note when npm has a newer one | installs or upgrades stim; uninstalls stim-cli when that is what resolves |
stim ports | the ports command, which the loop's web and Cosmos steps take their ports from | upgrades stim |
stim skill | stim skill in ~/.agents/skills or this repo | npx skills add appandflow/stim -g -y |
agent-device | installed; a note when npm has a newer one | npm install -g agent-device |
agent-device skill | agent-device skill in ~/.agents/skills or this repo | npx skills add callstack/agent-device -g -y |
ship login | DEFAULT_SHIP_LOGIN_URL + DEFAULT_SHIP_LOGIN_ACCESS_CODE, or DEFAULT_TLON_LOGIN_EMAIL + DEFAULT_TLON_LOGIN_PASSWORD, in the source checkout's apps/tlon-mobile/.env.local | nothing; they are credentials (see the tlon-workflow skill, Sign in) |
stim doctor | no cost finding in apps/tlon-mobile; one is a note with its fix, since it slows builds without blocking them | nothing; prints each finding and its fix |
--fix only installs global npm and Homebrew packages and adds skills under ~/.agents/skills. It touches nothing in this repository.
It deliberately does not run stim doctor --fix, which writes .claude/settings.local.json -- your own agent permission configuration -- and can delete generated Android .cxx directories. Both are decisions for the person running this, not repairs to apply on a tool's say-so. The stim doctor line prints what it found and the fix each finding names, as a note: a slow cache costs minutes, not the task.
When a line stays fix
The line carries the exact command. Two that need a person: gh auth login opens a browser, and the ship login values are credentials nobody but the user should type.
The ship login note is worth clearing even though it is only a note. Without those two variables every reproduction that needs a signed-in app stalls on a 2FA code an unattended run cannot read. With them, sign-in is four taps and no typing.
Signals
- GitHub stars
- 108
- Forks
- 49
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packagesK1binfo
installs-packages (in check.mjs)
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Key
tlon-workflow-doctor- Source
- github.com/tloncorp/tlon-apps