Terminal
Sandbox shell surface: streamed stdout and stderr, timestamps, an active prompt row, and copy.
Included in the single kansho full pack. Components are not offered as separate installs.
Build output with timestamps
14:02:01▶ bun run build14:02:01$ next build14:02:01 ▲ Next.js 15.3.214:02:02 Creating an optimized production build ...14:02:18 ✓ Compiled successfully14:02:19 ✓ Linting and checking validity of types14:02:19 ✓ Collecting page data14:02:22 ✓ Generating static pages (81/81)14:02:23 ✓ Collecting build traces14:02:24 ✓ Finalizing page optimization14:02:24Route (app) Size First Load JS14:02:24┌ ○ / 4.2 kB 142 kB14:02:24├ ○ /samples/agent-dashboard 12.8 kB 150 kB14:02:24└ ○ /samples/code-agent 9.1 kB 147 kB14:02:24Build complete — 81 static routes
TypeScript error output
▶ bunx tsc --noEmitsrc/auth/session.ts(20,5): error TS2322: Type 'null' is not assignable to type 'JWTPayload'.src/auth/session.ts(20,5): Expected: JWTPayloadsrc/auth/session.ts(20,5): Received: nullFound 1 error.
Test run with failure
▶ bun run testPASS tests/auth.test.ts✓ createSession returns a signed JWT (48ms)✓ verifySession validates a good token (12ms)✗ verifySession returns null on tampered token (8ms)● verifySession › returns null on tampered tokenExpected: AuthErrorReceived: nullTests: 1 failed, 2 passed, 3 total — 68ms
With active prompt
14:02:01▶ bun run build14:02:01$ next build14:02:01 ▲ Next.js 15.3.2~/code/example-agent-app $bun run lint
Component documentation
Terminal
components/sandbox/terminal.tsxPurpose
Displays scrollable terminal output, optional timestamps, a decorative prompt, and clipboard copy feedback.
Appropriate use
Use for read-only build, test, or command output where input and execution happen elsewhere.
Example
components/sandbox/terminal.tsx has a representative live example in the "Build output with timestamps" section on /components/terminal.
States
Line kinds are stdout, stderr, system, prompt, and input; title, timestamps, prompt, promptValue, and maximum height are optional.
API and props
Terminal accepts title, lines, prompt, promptValue, maxHeight, and className; TerminalLine supplies kind, text, and optional timestamp.
Dependencies
Direct imports are React, Lucide icons, and cn.
Accessibility
Copy output is a named button with visible and polite copied feedback; stderr and system meaning is repeated through text, while the prompt cursor is decorative motion.
Limitations
It is not an emulator or input field, copies only line text, does not report clipboard failure, and uses array indexes for rendered line identity.
Source
Source: components/sandbox/terminal.tsx.
Full pack
components/sandbox/terminal.tsx is documented at /components/terminal and installs only through the single Kansho full pack; no individual component install is offered.