janus-remote
Voice-to-text paste bridge for Claude CLI on remote SSH sessions.
Use your voice to interact with Claude CLI running on remote servers, with transcriptions pasted directly into the terminal - no window switching needed!
Installation
pip install janus-remote
Requirements
- Local Mac: Janus Electron app running (provides voice recognition + WebSocket server)
- SSH Config: Port forwarding enabled (one-time setup)
SSH Setup (One-Time)
Add this to your ~/.ssh/config on your local Mac:
Host *
RemoteForward 9473 localhost:9473
Or for specific hosts:
Host myserver
HostName myserver.example.com
RemoteForward 9473 localhost:9473
This forwards the Janus WebSocket bridge (port 9473) to the remote server.
Usage
On your remote server via SSH:
# Start a new Claude session with voice paste support
claude-janus
# Resume a previous session
claude-janus --resume
claude-janus -r
How It Works
LOCAL MAC REMOTE SERVER (via SSH)
┌─────────────────────┐ ┌─────────────────────┐
│ Janus Electron │ │ claude-janus │
│ (Voice Recognition) │ │ (This package) │
│ │ │ │ │ │
│ ▼ │ │ │ │
│ WebSocket :9473 ────┼─────────────┼───────► │ │
│ │ SSH Tunnel │ ▼ │
│ │ │ Inject into PTY │
└─────────────────────┘ └─────────────────────┘
- Speak into your Mac's microphone
- Janus transcribes and sends via WebSocket
- SSH tunnel forwards to remote server
claude-janusreceives and injects text directly into Claude CLI
Features
- Sexy Terminal Banner: Claude + Janus ASCII art on startup 🔮
- Voice Paste: Speak on your Mac → text appears in remote terminal
- Approval Overlay: Claude permission requests show on your local Mac overlay
- Zero latency feel: WebSocket connection, no polling
- Background paste: No window switching - text appears directly in terminal
- Multi-session support: Run multiple
claude-janussessions on different servers - Auto-reconnect: Handles connection drops gracefully
Troubleshooting
"Bridge connection failed"
- Ensure Janus Electron is running on your local Mac
- Verify SSH port forwarding is configured
- Check that port 9473 isn't blocked
"Could not find 'claude' binary"
- Install Claude CLI:
npm install -g @anthropic-ai/claude-cli - Or ensure it's in your PATH
License
MIT
Author
He Who Seeks
Metadata
Release files for janus-remote 0.17.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| janus_remote-0.17.0.tar.gz | 51.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| janus_remote-0.17.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 104.6 kB
Release files / janus_remote-0.17.0.tar.gz
| Download URL | janus_remote-0.17.0.tar.gz |
|---|---|
| Size | 51.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
738ff0b2f8a472cbf39ea332c04fcac56031f22bb8becccd0cffe43dc1b47c97
|
|
BLAKE2b-256 checksum How to use checksums |
7217a2bece3f9f6476c8481d78e81487df431421be91ca3a8b5a03f13cf2c60f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / janus_remote-0.17.0-py3-none-any.whl
| Download URL | janus_remote-0.17.0-py3-none-any.whl |
|---|---|
| Size | 53.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c082395dd9693aa5b9fc037339021280787bfa472be204d026066e7edaae39f0
|
|
BLAKE2b-256 checksum How to use checksums |
e69077ee4a0af7144a26d656a126ca00ccf49094fe68f598d7b6b0f1d9ef0b9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|