
Jinni: Bring Your Project Into Context

2025.04.07
190
Python项目上下文管理LLM集成工具开发效率
Jinni是一个高效的工具,旨在为大型语言模型(LLM)提供项目上下文。它通过整合相关项目文件及其元数据,克服了逐文件读取的限制和低效性。Jinni包含一个MCP(Model Context Protocol)服务器用于与AI工具集成,以及一个命令行工具(CLI)用于手动生成项目上下文。Jinni通过智能过滤和自定义配置,确保只包含相关文件,适合开发者在各种项目中使用。
View on GitHub
Overview
基本能力
产品定位
Jinni旨在为大型语言模型提供项目上下文,帮助开发者高效地管理和共享项目文件信息。
核心功能
- 高效上下文收集:一次性读取并拼接相关项目文件。
- 智能过滤:基于
.gitignore
语法的过滤系统,支持自定义.contextfiles
配置。 - 大上下文处理:支持配置上下文大小限制,并提供错误提示。
- 元数据头:输出包含文件路径、大小和修改时间。
- 编码处理:支持多种常见文本编码。
- 列表模式:仅列出文件路径而不包含内容。
适用场景
- 开发者在IDE中与LLM交互时提供项目上下文。
- 手动生成项目上下文用于LLM输入。
- 需要自定义文件包含/排除规则的项目管理。
工具列表
jinni
MCP服务器:- 与MCP客户端(如Cursor、Claude Desktop等)集成。
- 提供
read_context
工具,返回项目文件的拼接内容。 jinni
CLI:- 命令行工具,手动生成项目上下文。
- 支持输出到控制台、文件或剪贴板。
常见问题解答
- 上下文大小错误:
- 检查错误消息中的大文件列表,通过
.contextfiles
或--overrides
排除不必要文件。 - 使用
--size-limit-mb
增加限制(谨慎使用)。 - Cursor用户注意:
- 大上下文可能被静默丢弃,尝试减少上下文范围(如“read context for xyz”)。
使用教程
使用依赖
- 安装
uv
(推荐):bash curl -LsSf https://astral.sh/uv/install.sh | sh
安装教程
- 使用pip安装:
bash pip install jinni
- 使用uv安装:
bash uv pip install jinni
调试方式
- 运行MCP服务器:
bash uvx jinni-server
- 调试模式:
bash jinni --debug-explain ./src
- 列出文件:
bash jinni -l ./my_project/