ShellRS
ShellRS is a free, open-source SSH client written in Rust: host management, terminals, WinSCP-style SFTP and port forwarding in one GPU-rendered window, for macOS, Windows and Linux.
Trace every step, tool call, token and dollar of an LLM agent. Replay it. Fork it from any step.
Developer toolsTypeScript · CSSGitHub @NeelPariharOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Agent observability: trace every step, tool call, token and dollar — replay it, fork it from any step.
Loading the full README.
Read the full README ↗Trace every step of an LLM agent — model calls, tool calls, tokens and cost — then replay it step by step or fork it from any step with edited input and watch the new branch run live.
Live demo: https://retrace-neel.netlify.app · no sign-up, seeded with 25 traces.
0..N-1 into a new trace, edit the message or tool result at step N, and resume the agent. Forks link to their parent and get a side-by-side compare view./api/ingest with project keys; @retrace/sdk buffers, retries, and never throws into your code.ANTHROPIC_API_KEY to run Claude Haiku 4.5 with per-IP rate limits and a daily cost cap.flowchart LR
SDK["TypeScript SDK"] -- "POST /api/ingest" --> API
UI["Next.js UI: list, detail, replay, fork"] -- "SSE runs and forks" --> API
API["Route handlers"] --> Agent["Agent loop and Recorder"]
Agent --> Provider{"ModelProvider"}
Provider --> Sim["Simulated model"]
Provider --> Claude["Claude Haiku 4.5"]
API --> Repo["Repo interface"]
Agent --> Repo
Repo --> PG[("Supabase Postgres")]
Repo --> Mem[("In-memory store")]
apps/web — Next.js 15 App Router, React 19, Tailwind v4. Server code talks to a Repo interface; MemoryRepo and SupabaseRepo pass the same contract test suite.Recorder, which writes it, prices it, and streams it to the browser over SSE.packages/sdk — dependency-free TypeScript client.Requires Node 22+ and pnpm.
pnpm install
pnpm dev # http://localhost:3000 — seeded in-memory data, no setup
pnpm test # unit + API tests (Vitest)
pnpm e2e # Playwright smoke test
To use Postgres: create a Supabase project, apply supabase/migrations/*.sql, copy apps/web/.env.example to apps/web/.env.local, fill it in, then pnpm seed.
import { Retrace } from "@retrace/sdk";
const rt = new Retrace({ apiKey: "rt_demo_public_9f4c2a7e", baseUrl: "https://retrace-neel.netlify.app" });
const trace = rt.trace({ name: "support-bot", input: { question } });
const gen = trace.generation({ name: "answer", model: "claude-haiku-4-5", input: { question } });
gen.end({ output: answer, usage: { promptTokens: 812, completionTokens: 164 } });
await trace.end({ output: answer });
Next.js 15 · React 19 · TypeScript · Tailwind CSS v4 · Zod · Supabase Postgres · Vitest · Playwright · Netlify