{"id":47705072,"url":"https://github.com/vikrant82/tasksync-mcp","last_synced_at":"2026-04-19T21:07:56.453Z","repository":{"id":341641425,"uuid":"1170936325","full_name":"vikrant82/tasksync-mcp","owner":"vikrant82","description":"Human-in-the-loop feedback for AI coding agents. Pause your agent, give feedback (text + images), get Telegram notifications, reply from your phone. Works with OpenCode (plugin), VS Code Copilot, Claude Desktop (MCP).","archived":false,"fork":false,"pushed_at":"2026-04-19T19:31:56.000Z","size":763,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-19T20:21:17.080Z","etag":null,"topics":["ai-agents","claude-desktop","coding-agents","developer-tools","feedback","human-in-the-loop","mcp","opencode","telegram","vscode-copilot"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/tasksync-mcp-http","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"4regab/tasksync-mcp","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vikrant82.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T17:33:01.000Z","updated_at":"2026-04-19T19:31:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vikrant82/tasksync-mcp","commit_stats":null,"previous_names":["vikrant82/tasksync-mcp"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/vikrant82/tasksync-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikrant82%2Ftasksync-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikrant82%2Ftasksync-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikrant82%2Ftasksync-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikrant82%2Ftasksync-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vikrant82","download_url":"https://codeload.github.com/vikrant82/tasksync-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikrant82%2Ftasksync-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32022602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","claude-desktop","coding-agents","developer-tools","feedback","human-in-the-loop","mcp","opencode","telegram","vscode-copilot"],"created_at":"2026-04-02T17:53:02.666Z","updated_at":"2026-04-19T21:07:56.441Z","avatar_url":"https://github.com/vikrant82.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TaskSync\n\n**Human-in-the-loop feedback for AI coding agents.** Pause your agent mid-task, give it new directions, attach screenshots, and keep it on track — without restarting the conversation.\n\n**Reply from anywhere.** Enable Remote Mode and get Telegram notifications when your agent needs input. Tap a quick-reply button or type a response from your phone — the agent picks up instantly.\n\n## Quick Start\n\n```bash\nnpx tasksync-mcp-http\n```\n\nServer starts on port 3011 (MCP) and 3456 (web UI). Open `http://localhost:3456` to see the feedback dashboard.\n\n## OpenCode Plugin (Recommended)\n\nThe **[opencode-tasksync](https://www.npmjs.com/package/opencode-tasksync)** plugin is the best way to use TaskSync. Add one line to your OpenCode config:\n\n```json\n{\n  \"plugin\": [\"opencode-tasksync\"]\n}\n```\n\n**What the plugin gives you that raw MCP can't:**\n\n- **Zero-config agent behavior** — A `daemon` agent is injected automatically with the complete feedback loop protocol. No prompt pasting, no manual setup.\n- **Augment any agent** — Add feedback loops to your existing `coder`, `ask`, `build` agents with one config line. They start calling `get_feedback` between tasks.\n- **Unbreakable connections** — SSE transport with 30s keepalives and automatic reconnection (exponential backoff up to 15s). Server restarts, network blips — the agent never notices.\n- **Native image support** — Attached images appear directly in the LLM conversation via OpenCode's `tool.execute.after` hook. No temp files, no workarounds.\n- **Remote Mode** *(OpenCode exclusive)* — The plugin captures the agent's latest response and forwards it to Telegram. You see what the agent is asking and can reply without touching your laptop.\n- **FYI status updates** — When the agent works for 30+ seconds without asking for feedback, you get a status update on Telegram so you know it's still making progress.\n\n**How the plugin makes this possible:** It hooks into OpenCode's event system — `experimental.text.complete` for capturing agent context, `tool.execute.after` for native image injection, and the config hook for automatic agent/prompt injection. The SSE connection lives inside the tool's `execute()` function, which is a regular async function that can do anything before returning a string. All of this happens transparently — agents just call `get_feedback` and get back your response.\n\nSee the **[OpenCode Plugin Guide](docs/OPENCODE_PLUGIN.md)** for configuration, agent augmentation, and remote mode setup.\n\n## MCP Server (Universal)\n\nFor **VS Code Copilot, Claude Desktop**, or any MCP-compatible client — connect directly to the MCP endpoint.\n\nAdd to `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"tasksync\": {\n      \"url\": \"http://localhost:3011/mcp\"\n    }\n  }\n}\n```\n\nOr for OpenCode in MCP mode (`opencode.json`):\n\n```json\n{\n  \"mcp\": {\n    \"tasksync\": {\n      \"type\": \"remote\",\n      \"url\": \"http://localhost:3011/mcp\"\n    }\n  }\n}\n```\n\nMCP gives you the `tasksync_get_feedback` tool with full image support (`ImageContent` blocks). You'll need to provide the daemon agent prompt manually — see `prompts/` for ready-to-use templates.\n\n## How It Works\n\n1. Agent calls `get_feedback` and blocks\n2. You see the waiting session in the web UI at `http://localhost:3456`\n3. Type your feedback, attach images if needed, and submit\n4. Agent receives your response and continues working\n5. Repeat — the agent stays in a feedback loop until you tell it to stop\n\n## Feedback UI\n\nThe web dashboard at `http://localhost:3456` provides:\n\n- **Multi-session support** — Route feedback to different agent sessions\n- **Image attachments** — Paste, drag-drop, or file-pick images\n- **Markdown toolbar** — Bold, italic, code, lists, headings with keyboard shortcuts\n- **Live status** — See which sessions are waiting, idle, or have queued feedback\n- **Desktop notifications** — Get alerted when an agent is waiting\n- **Remote mode toggle** — Enable/disable Telegram notifications per session\n- **Session management** — Rename, prune stale, delete sessions\n\nSee **[Feedback UI Guide](docs/FEEDBACK_UI_GUIDE.md)** for details.\n\n## Remote Mode (Telegram)\n\nGet notified on Telegram when agents are waiting for feedback, and reply directly from your phone.\n\n### Setup\n\n1. Create a Telegram bot via [@BotFather](https://t.me/botfather) and copy the token\n2. Set the token:\n   ```bash\n   # .env file (recommended)\n   TASKSYNC_TELEGRAM_BOT_TOKEN=your-bot-token-here\n\n   # or CLI flag\n   npx tasksync-mcp-http --telegram-token=your-bot-token-here\n   ```\n3. Start the server, then send `/start` to your bot in Telegram\n4. Enable remote mode per session via the web UI toggle\n\nWhen an agent calls `get_feedback`, you'll receive a Telegram message with the agent's question and quick-reply buttons (Approve / Reject / Continue). Reply with text or tap a button — the feedback goes straight to the agent.\n\n\u003e **One bot per server.** Telegram only allows one process to poll for updates per bot token. If you run multiple TaskSync servers, create a separate bot for each via [@BotFather](https://t.me/botfather).\n\n## CLI Options\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `--port=\u003cn\u003e` | `3011` | MCP Streamable HTTP port |\n| `--ui-port=\u003cn\u003e` | `3456` | Feedback UI port |\n| `--telegram-token=\u003ctok\u003e` | — | Telegram bot token for remote notifications |\n| `--heartbeat` | off | Enable legacy `[WAITING]` timeout mode |\n| `--timeout=\u003cms\u003e` | `3600000` | Wait timeout (only with `--heartbeat`) |\n| `--no-ui` | off | Disable embedded feedback UI |\n\n### Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `TASKSYNC_TELEGRAM_BOT_TOKEN` | Telegram bot token (alternative to CLI flag) |\n| `TASKSYNC_TELEGRAM_CHAT_IDS` | Pre-authorized Telegram chat IDs (comma-separated) |\n| `TASKSYNC_LOG_LEVEL` | `debug`, `info`, `warn`, `error` (default: `info`) |\n| `TASKSYNC_LOG_FILE` | Path to log file (default: stderr) |\n\nA `.env` file in the project root is loaded automatically. See `.env.example` for all options.\n\n## Building from Source\n\n```bash\ngit clone https://github.com/vikrant82/tasksync-mcp.git\ncd tasksync-mcp\nnpm install \u0026\u0026 npm run build\nnode dist/index.js\n```\n\n## Documentation\n\n- [OpenCode Plugin Guide](docs/OPENCODE_PLUGIN.md) — Plugin setup, configuration, agent augmentation, remote mode\n- [API Specification](docs/API_SPEC.md) — MCP tools, HTTP endpoints, REST API\n- [Session Workflow](docs/SESSION_WORKFLOW.md) — Session lifecycle and routing\n- [Feedback UI Guide](docs/FEEDBACK_UI_GUIDE.md) — Web UI features and controls\n- [Examples](docs/examples/) — Curl commands, client configs, multi-session flows\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvikrant82%2Ftasksync-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvikrant82%2Ftasksync-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvikrant82%2Ftasksync-mcp/lists"}