Skip to content
stacks

OpenRouter CLI chat

A terminal chat app for typescript-cli on OpenRouter: an OpenTUI chat screen and scriptable commands with NDJSON events, tools also served by a stdio MCP server, chats saved as JSON with Markdown export, and stubbed replay and eval checks.

Category: app

In your existing repository

Ask your agent to check compatibility, follow this fragment’s brief, and verify the resulting project. What happens next

Applies to:
typescript-cli
Requires fragments:
openrouter-ai, claude-harness

Add to your project

Paste the prompt into the coding agent working on your project.

View prompt
Add the openrouter-chat-cli fragment to this existing repository. 1. Run npx @steamfield/stacks show openrouter-chat-cli --json and check that it fits the project. If it does not, explain why before changing files. 2. Run npx @steamfield/stacks add openrouter-chat-cli and follow the brief it prints. 3. In this repository, run npx @steamfield/stacks verify. Fix failures without weakening or skipping verification steps. 4. Summarize what changed and the verification result. Quote published stats only when they are available, including their interval and sample size. The stacks docs, written for agents, are at https://stacks.steamfield.io/llms.txt.
Or use the terminal
npx @steamfield/stacks add openrouter-chat-cli
Verify steps
StepPhaseLayerCommand
app-tui-entrycheckchecktest -f src/tui/launch.tsx
app-tui-testchecktestbun run test:tui
app-tui-smokechecktestbun run tui:capture -- --smoke
app-eval-dry-runchecktestbun scripts/check-eval-dry-run.ts
app-e2echecktestbun run app:e2e
app-acceptancechecktestbun run test:unit tests/app-acceptance.test.ts
Use with a new stack

Starting fresh instead? These stacks support this fragment.

  • npx @steamfield/stacks new typescript-cli --with openrouter-chat-cli

Files

  • DESIGN.md.tmpl
  • biome-plugins/chat-boundaries.grit
  • docs/acceptance/openrouter-chat-cli.md
  • docs/ask-turn.md.tmpl
  • docs/guidance/openrouter-chat-cli/effect-ai.md.tmpl
  • docs/guidance/openrouter-chat-cli/index.md
  • docs/guidance/openrouter-chat-cli/openrouter.md.tmpl
  • docs/guidance/openrouter-chat-cli/testing.md.tmpl
  • docs/guidance/openrouter-chat-cli/tui.md.tmpl
  • docs/guidance/openrouter-chat-cli/verification.md.tmpl
  • scripts/lib/stub-pid.ts.tmpl
  • scripts/stub.ts.tmpl

Usage

Among stacks projects in the 28 days through 30 Oct 2026: 1,605 projects; Green rate: not enough runs yet.

Weekly projects by stack

Projects whose final fragment set included this fragment, grouped by stack.

Weekly projects including this fragment, by stack: time span
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Sep 1Oct 10100200300400500typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
  • typescript-cli
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
Aug 1Sep 1Oct 10100200300400500typescript-cli · 5 Jul 2026: 75typescript-cli · 12 Jul 2026: 120typescript-cli · 19 Jul 2026: 170typescript-cli · 26 Jul 2026: 215typescript-cli · 2 Aug 2026: 270typescript-cli · 9 Aug 2026: 265typescript-cli · 16 Aug 2026: 305typescript-cli · 23 Aug 2026: 270typescript-cli · 30 Aug 2026: 325typescript-cli · 6 Sept 2026: 360typescript-cli · 13 Sept 2026: 355typescript-cli · 20 Sept 2026: 375typescript-cli · 27 Sept 2026: 375typescript-cli · 4 Oct 2026: 430typescript-cli · 11 Oct 2026: 415typescript-cli · 18 Oct 2026: 435typescript-cli · 25 Oct 2026: 480
  • typescript-cli

Stacks projects per UTC week through 30 Oct 2026. Published stack counts only.

Data table
Week endingStackProjects
5 Jul 2026typescript-cli75
12 Jul 2026typescript-cli120
19 Jul 2026typescript-cli170
26 Jul 2026typescript-cli215
2 Aug 2026typescript-cli270
9 Aug 2026typescript-cli265
16 Aug 2026typescript-cli305
23 Aug 2026typescript-cli270
30 Aug 2026typescript-cli325
6 Sept 2026typescript-cli360
13 Sept 2026typescript-cli355
20 Sept 2026typescript-cli375
27 Sept 2026typescript-cli375
4 Oct 2026typescript-cli430
11 Oct 2026typescript-cli415
18 Oct 2026typescript-cli435
25 Oct 2026typescript-cli480

By stack

How often this fragment stays in a default composition, or gets attached as an option.

typescript-cli
Optional · attached17%

1,605 projects including the fragment

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Data table
StackProjectsRoleShare
typescript-cli1,605Optional · attached17%

Green rate with and without it

This compares projects; it isn't an effect of the fragment.

Not enough runs in this breakdown yet.

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Often used with

Co-occurrence above the baseline, within a stack. Required fragment pairs are excluded.

Not enough runs in this breakdown yet.

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Computed 31 Oct 2026, through 30 Oct 2026. Numbers describe stacks projects, not the ecosystem.