mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-03-25 09:25:50 +00:00
* Add keyboard shortcut highlighter to terminal - Create keyboard-shortcut-highlighter.ts with comprehensive pattern matching - Integrate highlighter into terminal component alongside URL highlighting - Support clickable shortcuts like "Ctrl+R", "Ctrl+A", "esc to interrupt" - Style shortcuts with greyish color and dotted underlines (not blue links) - Send actual key sequences when shortcuts are clicked - Handle overlapping matches and avoid double-processing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix keyboard shortcut input handling - add missing event listener The keyboard shortcut highlighter was dispatching 'terminal-input' events but the session-view component wasn't listening for them. Added: - @terminal-input event listener on vibe-terminal component - handleTerminalInput method that forwards to inputManager.sendInputText() Now clicked shortcuts like 'Ctrl+R' properly send input to the terminal. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add Claude Code interactive prompt support to keyboard shortcut highlighter Make numbered options in Claude Code prompts clickable: - Pattern: '❯ 1. Yes' or ' 2. Yes, and don't ask again' - Clicking sends the number (1, 2, 3, etc.) to terminal - Handles both selected (❯) and unselected options - Uses multiline regex matching for line-start patterns Now users can click numbered options instead of typing numbers. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Claude Code prompt patterns to handle indented options Previous patterns required line-start anchors which failed for indented options within bordered terminal output. Updated patterns: - Remove restrictive line-start anchors (^) - Add whitespace-flexible patterns for indented options - Support both cursor-selected (❯) and plain numbered options - Handle 'Yes, proceed' and 'No, exit' style options Now correctly matches: '❯ 1. Yes, proceed' and ' 2. No, exit' patterns. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Simplify Claude Code prompt patterns to be fully generic Replace keyword-specific patterns with generic numbered option matching: - ❯ 1. (cursor-selected options) - 1. xxxxx (any numbered option with text) Now matches any numbered list item regardless of content: '1. Yes, proceed', '2. No, exit', '3. Maybe later', etc. Much cleaner and more flexible than keyword-based matching. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Claude Code prompt patterns to highlight full option lines Changed from matching only first word to matching entire lines: - /❯\s*(\d+)\.\s+.*/ - highlights complete cursor-selected option - /(\d+)\.\s+.*/ - highlights complete numbered option Now '1. Yes, proceed' and '2. No, exit' are fully underlined instead of just '1. Yes' and '2. No'. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| docs | ||
| scripts | ||
| src | ||
| .gitignore | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| biome.json | ||
| build-custom-node.js | ||
| build-native-clean.sh | ||
| build-native.js | ||
| CLAUDE.md | ||
| custom-node.md | ||
| fwd-test.ts | ||
| LOGGING_STYLE_GUIDE.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| README.md | ||
| SECURITY.md | ||
| spec.md | ||
| tailwind.config.js | ||
| test-results.json | ||
| tsconfig.base.json | ||
| tsconfig.client.json | ||
| tsconfig.json | ||
| tsconfig.server.json | ||
| tsconfig.sw.json | ||
| tsconfig.test.json | ||
| vitest.config.ts | ||
VibeTunnel Web
Web terminal interface and server for VibeTunnel.
Quick Start
Production users: Use the pre-built VibeTunnel executable from the main app.
Development
pnpm install
pnpm run dev # Watch mode: server + client
pnpm run dev:client # Watch mode: client only (for debugging server)
Build Commands
pnpm run clean # Remove build artifacts
pnpm run build # Build everything (including native executable)
pnpm run lint # Check code style
pnpm run lint:fix # Fix code style
pnpm run typecheck # Type checking
pnpm run test # Run all tests (unit + e2e)
pnpm run format # Format code
Production Build
pnpm run build # Creates Node.js SEA executable
./native/vibetunnel # Run standalone executable (no Node.js required)
Architecture
See spec.md for detailed architecture documentation.
Key Features
- Terminal sessions via node-pty
- Real-time streaming (SSE + WebSocket)
- Binary-optimized buffer updates
- Multi-session support
- File browser integration