{"id":"d6a7e86d-3bf8-4db4-a935-be97be60d623","slug":"repofit","kind":"mcp","name":"repofit","summary":"Find GitHub projects that fit you, using what your coding agents already know about you.","owner":"pth2002","repoUrl":"https://github.com/pth2002/repofit","license":"MIT","licenseTier":"permissive","trust":"community","stars":6,"match":null,"fewStars":false,"format":"mcp","createdAt":"2026-11-03T02:24:12.000Z","addedAt":"2026-11-08T04:32:26.464Z","logoUrl":"https://avatars.githubusercontent.com/u/151376397?u=f58ffafba83c0578957ed18fb97f63c53cb7fcd6&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","cloud-infra"],"tags":["claude-code","codex","coding-agents","cursor","developer-tools","github","recommendation","ai-agents"],"runtime":"python","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-11-08T04:32:40.800Z","sample":false,"url":"https://conduits.dev/tools/repofit","language":"Python","transports":["stdio"],"install":{"pypi":"repofit"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/pth2002/repofit/main/assets/hero-dark.svg\" />\n  <img src=\"https://raw.githubusercontent.com/pth2002/repofit/main/assets/hero-light.svg\" alt=\"repofit. Your agents already know you. Now they know what to install. A sketch: AGENTS.md, CLAUDE.md, Cursor rules and Gemini chats go into repofit, which reads them on your machine. Out come ntfy, SciencePlots and actionlint, each pointing back at the chat it came from.\" width=\"100%\" />\n</picture>\n\n<p align=\"center\">\n  <a href=\"https://github.com/pth2002/repofit/actions/workflows/test.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/pth2002/repofit/test.yml?branch=main&style=flat-square&label=tests\" alt=\"Tests\" /></a>\n  <img src=\"https://img.shields.io/badge/python-3.11%2B-2563EB?style=flat-square\" alt=\"Python 3.11+\" />\n  <img src=\"https://img.shields.io/badge/dependencies-none-0d1117?style=flat-square\" alt=\"No dependencies\" />\n  <img src=\"https://img.shields.io/badge/MCP-server-0d1117?style=flat-square\" alt=\"MCP server\" />\n  <a href=\"https://github.com/pth2002/repofit/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-0d1117?style=flat-square\" alt=\"MIT\" /></a>\n</p>\n\n<p align=\"center\"><b>English</b> · <a href=\"https://github.com/pth2002/repofit/blob/main/README_zh.md\">简体中文</a></p>\n\n**Stop scrolling trending. Ask the agent that has watched you work.**\n\nEvery week another wave of repositories hits ten thousand stars, and every \"tools you should try\" list is\nwritten for everyone at once. Meanwhile your coding agents have been taking notes on you for months: what you\nbuild, what keeps breaking, what you complained about at 2 a.m. repofit reads those notes on your own\nmachine, from Claude Code, Codex, Cursor and a dozen more, and turns them into picks you have not heard of\nand will actually use. Every pick shows you the moment in your own history that earned it.\n\nhttps://github.com/user-attachments/assets/c7ac0bcf-74ed-4a09-9295-b6d06e6d67c1\n\n## Install\n\n```bash\npipx install repofit\n```\n\nThen point the agents you use at `repofit mcp`. Most of them read the same MCP config:\n\n```json\n{ \"mcpServers\": { \"repofit\": { \"command\": \"repofit\", \"args\": [\"mcp\"] } } }\n```\n\nThat line goes in `~/.cursor/mcp.json` for Cursor, `~/.gemini/settings.json` for Gemini CLI,\n`~/.qwen/settings.json` for Qwen Code, and the MCP settings of Cline, Windsurf or Claude Desktop. Codex reads\nTOML, and Claude Code adds servers from the command line:\n\n```toml\n# ~/.codex/config.toml\n[mcp_servers.repofit]\ncommand = \"repofit\"\nargs = [\"mcp\"]\n```\n\n```bash\nclaude mcp add repofit -- repofit mcp\n```\n\nrepofit runs inside your agent, so your agent's own model does the thinking: no API key, no account, nothing\nto host. To skip the install step, use [uv](https://docs.astral.sh/uv/) and make the command `uvx repofit mcp`.\n\n## Just ask\n\nOpen a new session in any agent you connected and talk to it like a colleague who has read your history:\n\n- \"Use repofit to recommend some GitHub projects for me.\"\n- \"Does github.com/owner/name fit me?\"\n- \"Is there a good tool for turning PDFs into Markdown?\"\n- \"Which of my installed skills do I never use?\"\n\nThe agent shows you the picks in the chat, and the same list stays one command away:\n\n<img src=\"https://raw.githubusercontent.com/pth2002/repofit/main/assets/terminal.png\" alt=\"Terminal output of repofit recommend --show. Three picks, each with the task it serves, why it fits and the session it was seen in: ntfy for training jobs on rented GPU servers, seen in a Claude Code session asking whether the run was done; SciencePlots for paper figures, seen in a Codex session about a chart layout; actionlint for GitHub Actions releases, seen in a Cursor session about a workflow typo. Below them: one skipped household name, installed skills and MCP servers no session ever called, and tools left out because they are already in use.\" width=\"100%\" />\n\n<sub>The picks come from a sample history. The text is exactly what the CLI prints.</sub>\n\nEvery pick has a receipt. No \"because you starred X\": the `seen in` line points at the session where the need\nshowed up and quotes what you said. If repofit cannot point at your history, it does not make the pick.\n\nThe list at the bottom matters more than it sounds. Every skill and MCP server you installed and forgot still\ncosts context on every single request, and repofit names the ones none of your sessions ever called.\n\n## How it picks\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/pth2002/repofit/main/assets/steps-dark.svg\" />\n  <img src=\"https://raw.githubusercontent.com/pth2002/repofit/main/assets/steps-light.svg\" alt=\"How repofit picks, as a sketch. Read memory files, rules and your own messages from every agent on your machine. Write a one-page profile where every line cites the chat it came from. Retrieve 30 of 18,338 repositories. Rank what you most likely do not know yet, crossing out what you already know.\" width=\"100%\" />\n</picture>\n\nEach agent stores its history differently, and the formats change every few months, so repofit ships one\nadapter per agent. The profile is written from a redacted, numbered evidence pack, and any claim that cites\nevidence that does not exist is thrown out by the code, not left to the model's good manners. Retrieval runs\none query per task you actually do, with project names and search phrases the model adds, so it finds the\nlibrary a task depends on even when you never typed its name. The ranker is told to skip the household names\nyou already know. The candidate pool is rebuilt every Monday from the GitHub API: active repositories above\n3,000 stars, new ones above 1,000, the agent ecosystem above 300, plus GitHub trending.\n\n## Your history stays yours\n\n- Everything runs on your machine. repofit reads the files your agents already keep and writes its own to\n  `~/.repofit`.\n- You choose the depth: installed tools only, plus memory and instruction files (the default), or plus your\n  own messages and tool calls.\n- Before any model sees a line, API keys, tokens, passwords, emails, phone numbers and random-looking strings\n  (yes, including the password you once pasted after `ssh`) are stripped, and your home folder becomes `~`.\n- With MCP, the text goes to the model your agent already uses. From the command line it goes only to the\n  provider you name, after you confirm.\n- Your notes and other people's READMEs can hide instructions. repofit hands everything over as data, and the\n  agent is told never to follow what it finds inside.\n\n## Supported agents\n\n| Agent | Sessions | Memory and instructions | Installed tools |\n|---|---|---|---|\n| Claude Code | yes | `CLAUDE.md`, project memory | skills, plugins, MCP servers |\n| Codex | yes, CLI and desktop | `AGENTS.md`, `memories/` | skills, plugins, MCP servers |\n| Cursor | yes | user rules, pending memories | MCP servers, extensions |\n| Hermes Agent | yes | `USER.md`, `MEMORY.md` | skills, MCP servers |\n| Gemini CLI, Qwen Code | yes | `GEMINI.md`, `QWEN.md` | MCP servers, extensions |\n| Cline, Roo Code, Kilo Code | yes | `.clinerules` | MCP servers |\n| Continue | yes | `rules/` | MCP servers |\n| VS Code Copilot | yes | `copilot-instructions.md` | MCP servers, extensions |\n| Kimi CLI, Aider | yes | | |\n| OpenCode | counted | `AGENTS.md` | MCP servers |\n| Windsurf, Claude Desktop, WorkBuddy, Trae | no local sessions | memories where present | MCP servers |\n\nProject instruction files (`AGENTS.md`, `CLAUDE.md`, `.cursorrules` and friends) are read too. Run\n`repofit scan` to see what it finds on your machine. If your agent hides its data somewhere else, open an\nissue with the path and it gets an adapter.\n\n<details>\n<summary>Command line, no agent needed</summary>\n\nInstall with `pipx install repofit`, or put `uvx` in front of each command.\n\n```bash\nrepofit scan                                    # which agents are installed and what each one stores\nrepofit profile build --level L2 --provider deepseek\nrepofit recommend --provider deepseek --lang zh\n```\n\nProviders: `deepseek`, `openai`, `ollama`, `anthropic`, or any OpenAI-compatible endpoint with\n`--provider compatible --base-url ... --model ...`. Keys come from `DEEPSEEK_API_KEY`, `OPENAI_API_KEY` or\n`ANTHROPIC_API_KEY`, and repofit shows how much text it will send before it sends anything.\n\nNo provider at all? Each model step prints a prompt to paste into any chat and imports the answer:\n\n```bash\nrepofit profile prompt --level L2 > prompt.md   # then: repofit profile apply answer.json\nrepofit profile expand --prompt                 # then: repofit profile expand --apply answer.json\nrepofit recommend --prompt --lang en            # then: repofit recommend --apply answer.json\nrepofit recommend --no-llm                      # keyword retrieval only, nothing leaves your machine\n```\n\n</details>\n\n## Development\n\n```bash\ngit clone https://github.com/pth2002/repofit && cd repofit\npython -m pip install -e . pytest\npython -m pytest\nrepofit index build      # rebuild the candidate pool yourself; needs a GitHub token\n```\n\n## License\n\nMIT\n\n<!-- mcp-name: io.github.pth2002/repofit -->\n"}