Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (plainhub) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
PlainHub
Talk to Your Whole Repository. GitHub-native browser editor with AI Panel and voice mode.
Open, edit, save — directly to your repo. Ask AI about your files. Now with voice. No server, no database.
What's New in v1.4.0 — "Talk to Your Whole Repository"
🎙 Voice Mode (Web App)
- Push-to-talk voice input — hold the mic button to dictate
- Read-aloud AI responses with adjustable speed (1.0x / 1.5x / 2.0x / 3.0x / 5.0x)
- All in your browser — no server, no extra account
🤖 Enhanced AI Panel
- Ask Claude about any file in your repository
- BYOK (Bring Your Own Key) — your Anthropic API key stays in your browser
- Streaming responses with diff preview for proposed edits
🔐 GitHub App Authentication
- Per-repository access — choose exactly which repos PlainHub can read/write
- No "all repos" scope, no full-account access
- Minimal trust required to start
Try it now: plainhub.dev
Install
npm install -g plainhubQuick Start
CLI
plainhub auth --from-gh # Import auth from gh CLI (recommended)
plainhub open README.md -r owner/repo
plainhub browse -r owner/repo # Open file browserMCP Server (Claude Code)
claude mcp add plainhub -- plainhub-mcpThen say: "Open the README in PlainHub"
MCP Server (Cursor)
Add to .cursor/mcp.json:
{
"mcpServers": {
"plainhub": {
"command": "plainhub-mcp"
}
}
}CLI Usage
Commands
| Command | Description |
|---|---|
plainhub open <file> |
Open a file in PlainHub |
plainhub diff <sha> |
Show commit diff in PlainHub |
plainhub browse |
Open repository file browser |
plainhub auth |
Authenticate with GitHub PAT |
plainhub auth --from-gh |
Import token from gh CLI |
plainhub auth --status |
Show auth status |
plainhub auth --logout |
Remove saved token |
Options
| Option | Value | Description |
|---|---|---|
-r, --repo |
owner/name | Repository |
-b, --branch |
string | Git branch |
-l, --line |
number | Jump to line |
-n |
Print URL only (don't open browser) | |
--theme |
dark/light | Editor theme |
--preview |
on/off | Markdown preview |
--scroll |
string | Scroll to heading in preview |
--sidebar |
on/off | Show sidebar |
--fontSize |
10-32 | Font size |
--lineNumbers |
on/off | Show line numbers |
--whitespace |
on/off | Show whitespace |
--no-auth |
Open without saved token |
Examples
plainhub open docs/API.md -r owner/repo --preview on
plainhub open src/App.tsx -r owner/repo -l 42 --theme light
plainhub open README.md -r owner/repo -n # Print URL only
plainhub diff abc1234 -r owner/repo # Show commit diff
plainhub diff abc1234 -r owner/repo --path src/main.js # Diff for specific fileMCP Server Tools
| Tool | Description |
|---|---|
plainhub_open |
Open a file or change editor settings |
plainhub_diff |
Show commit diff in PlainHub |
plainhub_browse |
Open repository file browser |
plainhub_auth |
Save a GitHub PAT |
plainhub_auth_status |
Check authentication status |
Authentication
PlainHub supports three authentication methods:
- gh CLI import (recommended):
plainhub auth --from-gh - Manual PAT:
plainhub auth— opens GitHub token settings - Web UI: Enter PAT directly in the browser
Tokens are saved to ~/.config/plainhub/token with 0600 permissions (owner-only read/write).
Security
- Tokens are stored locally with restrictive file permissions (
0600) - URL fragments (
#token=...) are never sent to servers per HTTP spec - Fragments are cleared from browser history immediately after use
- No intermediary servers — browser communicates directly with GitHub API
Links
License
MIT