Skip to content

feat: self-hosted local server + new AI tools (crush, gemini, vibe)#49

Open
B-A-M-N wants to merge 8 commits into
termly-dev:mainfrom
B-A-M-N:main
Open

feat: self-hosted local server + new AI tools (crush, gemini, vibe)#49
B-A-M-N wants to merge 8 commits into
termly-dev:mainfrom
B-A-M-N:main

Conversation

@B-A-M-N
Copy link
Copy Markdown

@B-A-M-N B-A-M-N commented May 26, 2026

Summary

The official termly.dev server is offline. This PR bundles termly-local-server/, a self-hosted relay server that implements the same WebSocket protocol so the Termly mobile app works over LAN without any cloud dependency.

What's Added

termly-local-server/

  • server.js — zero-knowledge WebSocket relay (E2EE, server never decrypts)
  • REST endpoints: /api/pairing, /api/pairing/batch, /api/cli/version, /api/health
  • Heartbeat ping/pong, deferred connection classification
  • termly-server.sh — one-command launcher

CLI Changes

  • termly server [start|stop|status|launch] command for server management
  • Auto-sets TERMLY_ENV=local in launch flow
  • LAN IP in QR code for mobile connectivity
  • Local mode defaults to port 3001

New AI Tools

  • crush (charmbracelet, TUI mode)
  • gemini (Google, TUI mode)
  • vibe (Mistral Vibe PR workflow CLI)

Usage

npm install -g @termly-dev/cli
termly-server start

Scan QR code with Termly mobile app. Done.

B-A-M-N and others added 8 commits March 6, 2026 10:17
Stop reconnect loop when server closes connection with pairing_expired (1008).
Treat it same as session_not_found — exit cleanly with instructions to restart.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds two new AI tool configurations:
- openclaude: Claude Code with custom API key profile 1
- openclaude2: Claude Code with custom API key profile 2

These allow users to run multiple Claude Code instances with different API key profiles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add termly-local-server integration (server command for start/stop/launch)
- Add crush, gemini (TUI), and vibe AI tools to registry
- Fix local mode port to 3001 (avoid WhatsApp bridge conflict)
- Use LAN IP in QR code for mobile connectivity
- Auto-set TERMLY_ENV=local in launch flow
- One-command launcher: termly-server start
Include the local relay server in the fork so users can self-host
termly without depending on the dead termly.dev service.

Co-Authored-By: OWL <<EMAIL>>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants