Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Access your terminal and your AI agent from any device — phone, tablet, desktop.
| Date | Stars |
|---|---|
| 2026-07-31 | 514 |
| 2026-08-05 | 519 |
| 2026-08-06 | 519 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
<div align="center">
<img src="docs/images/profile.png" alt="clsh logo" width="120" />
# clsh
**Your Mac, in your pocket.**
Real terminal access from your phone. Not SSH. Not a simulation.
A real PTY on your machine, streamed to your pocket.
[](https://typescriptlang.org)
[](LICENSE)
[](CONTRIBUTING.md)
[](https://nodejs.org)
[Live Demo](https://clsh.dev) · [Getting Started](#quickstart) · [How It Works](#how-it-works) · [Contributing](CONTRIBUTING.md)
<br />
<img src="assets/setup-flow.gif" alt="clsh setup flow" width="300" />
</div>
---
<div align="center">
<table>
<tr>
<td align="center"><img src="docs/images/phone-grid.png" width="220" /><br /><b>Session Grid</b></td>
<td align="center"><img src="docs/images/phone-claude.png" width="220" /><br /><b>Claude Code on Phone</b></td>
<td align="center"><img src="docs/images/phone-terminal.png" width="220" /><br /><b>Terminal + Live Preview</b></td>
</tr>
<tr>
<td align="center"><img src="docs/images/phone-claude-active.png" width="220" /><br /><b>MacBook Keyboard Skin</b></td>
<td align="center"><img src="docs/images/phone-skins.png" width="220" /><br /><b>Skin Studio — 6 Themes</b></td>
<td></td>
</tr>
</table>
</div>
---
## What is clsh?
clsh gives you real terminal access to your Mac from your phone. One command, scan the QR code, and you're in. Multiple live terminal sessions, a custom keyboard built for terminal use, 6 keyboard skins, and session management. Open source, zero config.
**Key highlights:**
- Run Claude Code from your phone and watch it work in real time
- Multiple terminal sessions with live grid preview
- Custom keyboard with sticky modifiers, key repeat, and context strip
- 3-tier tunnel: ngrok → SSH → Wi-Fi (works without any signup)
- Install as a PWA — fullscreen, no browser chrome
## Quickstart
> **Requires [Node.js 20+](https://nodejs.org)** and macOS or Linux.
```bash
npx clsh-dev
```
A QR code prints to the console. Scan it on your phone. That's it.
### Permanent URL (optional)
For a static URL that survives restarts (perfect for PWA home screen):
```bash
npx clsh-dev setup
```
See the [ngrok setup guide](docs/ngrok-setup.md) for details.
## How It Works
```
Phone / Tablet / Browser
│
│ HTTPS (WebSocket)
▼
┌──────────────┐
│ Tunnel │ ngrok (static URL) / SSH (localhost.run) / Wi-Fi
└──────┬───────┘
▼
┌──────────────────────┐
│ clsh agent │ ← runs on your machine
│ ├── PTY 0: zsh │
│ ├── PTY 1: claude │
│ ├── PTY 2: ... │
│ └── up to 8 sessions │
└──────────────────────┘
```
1. `npx clsh-dev` starts the backend agent + React frontend
2. The agent spawns real terminal sessions via `node-pty`
3. When tmux is installed, sessions are wrapped in tmux for **persistence** — they survive server restarts
4. A tunnel (ngrok, SSH, or Wi-Fi) exposes the agent over HTTPS
5. A one-time bootstrap token + QR code authenticates your phone
6. xterm.js renders the terminals in your browser with full color and interactivity
## Security
**Security is our top priority.** clsh gives remote terminal access to your machine, so any vulnerability could mean full machine compromise. We take this extremely seriously.
### What we do
| Layer | Protection |
|-------|-----------|
| **Authentication** | One-time bootstrap tokens (single-use, 5-min TTL), scrypt password hashing (N=16384, 64-byte key, random salt), WebAuthn/Face ID biometric auth |
| **Token security** | JWT issued via HS256, bootstrap token passed in URL hash fragment (never sent to servers), WebSocket auth via first message (not query string) |
| **Transport** | HTTPS enforceExcerpt of 13,689 characters
Read on GitHub30
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:ee99ee61ca6af0c4, topic:developer-tools