RepoMind Bridge
by idanidev
README.md
# RepoMind Bridge
An MCP server that hands your coding agent the tasks you dictated — in the words you actually
said, not a tidied-up title.
You find a bug on your phone, away from the keyboard. You say it out loud. Later you open the
repository and Claude Code, Cursor or Codex already knows what you asked for, picks it up, and
closes it when the work is done.
```
phone (dictate) ──► RepoMind ──► GitHub issue ──► this bridge ──► your agent
```
Tasks travel as **GitHub issues** labelled `repomind-task`. There is no server to deploy and
nothing to pay for: GitHub is the postbox.
## Install
```bash
git clone https://github.com/idanidev/repomind-bridge.git
cd repomind-bridge
npm install
npm run build
```
### Authentication
No token needs to be written into a config file. If you are already signed in with the GitHub
CLI, the bridge uses those credentials:
```bash
gh auth login
```
Otherwise set `GITHUB_TOKEN` to a token with `repo` scope:
```bash
export GITHUB_TOKEN=...
```
`GITHUB_TOKEN` wins when both are present. If GitHub rejects it, the bridge resolves it again and
retries once — an MCP server stays up for days, and `gh` rotates its token underneath it.
### Point your agent at it
**Claude Code** — add to `~/.claude.json`:
```json
{
"mcpServers": {
"repomind": {
"command": "node",
"args": ["/absolute/path/to/repomind-bridge/dist/index.js"]
}
}
}
```
**Cursor** — the same block in `.cursor/mcp.json`. **Codex** — in `.codex/config.toml`.
## Tools
| Tool | What it does |
|---|---|
| `list_tasks` | Everything captured for this repository. Call it before asking what to work on. |
| `get_task` | One task in full, including `rawInput` and the comment thread. |
| `start_task` | Marks it in progress — visible on the phone — and returns the full context. |
| `add_note` | Posts a note to the thread, which reaches the developer's phone. |
| `ask_user` | Marks it blocked and asks one specific question. Do not wait for the answer. |
| `complete_task` | Closes the issue. Attach a PR url if there is one. |
| `get_task_image` | The screenshot attached when the task was captured. |
### `rawInput` is the specification
`title` is a cleaned-up label. `rawInput` is what the developer dictated. When the two seem to
disagree, `rawInput` wins — it is the only record of what they meant.
### Screenshots never leave the machine
`get_task_image` reads the image from the RepoMind app's local database, not from GitHub.
Committing screenshots into the repository would grow it permanently, and in a private repo the
image would not even render: GitHub does not authenticate image URLs on the reader's behalf. Making
the repo public to fix that would publish bug screenshots, which routinely contain personal data.
So nothing is uploaded anywhere. The image is already on the machine, synced by iCloud; the bridge
reads it and hands it over. It follows that this tool only works where the Mac app is installed.
## Session briefing
`src/brief.ts` can run as a SessionStart hook so the agent opens already knowing what is waiting.
It stays silent when there is no token, no network, or no tasks — a hook that fails loudly on a
plane is worse than no hook.
## Requires
The RepoMind iOS/macOS app to capture the tasks, and a GitHub account. Node 18+.
## License
MIT
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues