stare is a CLI to stream remote CI and build logs in real time.
Supported platforms:
- GitHub Actions
- Expo EAS Build
git push
stareOfficial build CLIs often show status, links, or metadata well, but they do not always stream remote logs in real time.
That means you often end up with this split workflow:
- you have to open a browser tab to watch the live logs
- the terminal can tell you that a build is running, but not show the actual warnings and errors as they happen
stare is built for the opposite workflow.
Run it right after pushing a commit or starting a build and watch the remote logs stream directly into your terminal. That makes CI output feel much closer to local execution, which is useful both for humans and for AI agents that need to read warnings, failures, and build output directly.
The goal is faster iteration: start the remote build, watch it locally, and react as soon as something goes wrong.
npm install -g stare-cliOr run it without installing globally:
npx stare-cli <command>Requirements:
- Node.js 22+
- a Chromium-based browser installed locally for GitHub live logs
- for GitHub: either set
GITHUB_TOKEN/ pass--token, or install GitHub CLI and rungh auth login - for Expo EAS Build: install EAS CLI and run
eas login
GitHub Actions:
git push
stareExpo EAS Build:
stare eas <build-id-or-url>stare
stare gh
stare gh <commit-sha>
stare gh <actions-url>
stare gh --run-id <run-id>
stare gh --run-id <run-id> --run-id <run-id>
stare gh --loginstare defaults to stare gh, and stare gh defaults to the current repo and the latest eligible run for each workflow on HEAD.
Common cases:
- no argument: watch the latest eligible runs for the current
HEAD - commit SHA: watch the matching runs for that commit
- Actions URL or
--run-id: watch a specific run directly - repeated
--run-id: watch multiple explicit runs together
For authentication:
stare/stare ghcan open a browser automatically if the saved GitHub browser session is missing or expiredstare gh --loginis available if you want to create or refresh that browser session ahead of time- use
GITHUB_TOKEN,--token, orgh auth loginfor GitHub API access
Example:
stare gh --run-id 123456789 --repo owner/repostare eas <build-id>
stare eas <expo-build-url>
stare eas <build-id-or-url> <build-id-or-url>stare reads Expo auth from ~/.expo/state.json, so log in first with eas login.
Example:
stare eas 11111111-2222-4333-8444-555555555555stare prints the resolved target before streaming so it is obvious what it selected.
GitHub output is grouped by job, for example:
[test] npm test
[lint] npm run lint
EAS output is grouped by build target, with phase headings and indented log lines, for example:
[Android] Run gradlew
[Android] > Task :app:assembleRelease
This keeps the stream readable while still working well for plain terminal use and for agent consumption.
- GitHub uses the REST API for run and job metadata, then Playwright with a persisted browser session for real-time log streaming
- EAS uses Expo's GraphQL API for build metadata and tails signed JSONL log files exposed by the build
npm install
npm run build
npm testThe main entrypoint is src/cli.ts.
stare was partly inspired by octotail, which proved the value of following CI logs from the terminal.
stare takes a different approach in a few places:
- it does not require
mitmproxy, which keeps setup lighter - it supports Expo EAS Build in addition to GitHub Actions
- it keeps the provider model open so each platform can use the transport that fits it best
