文件最后提交记录最后更新时间
1 年前
10 个月前
9 个月前
9 个月前
10 个月前
10 个月前
README

🤖 GitHub Repo Chat Explorer

A Streamlit-based chat interface powered by CAMEL-AI and MCP (Model Context Protocol) that lets you conversationally explore any GitHub repository. Ask questions like "How many files?", "Show me the README contents", or follow-up queries—all in context of the chosen repo.


✨ Features

  • Interactive Chat UI: Chat with your repository using Streamlit's chat components.
  • Dynamic Context: Set or change the GitHub repo URL in the sidebar to switch contexts on the fly.
  • Session Memory: Keeps your question-answer history until you change the repo.
  • Agent-Powered: Under the hood, a ChatAgent + MCPToolkit fetches and processes repo data.

📸 Screenshot

Repo Chat Explorer UI

A conversation where the user asks about the repo structure and README file.


📋 Prerequisites

  • Python >=3.10,❤️.13
  • Node.js & npm (for MCP server plugin)
  • OpenAI API key in .env:
    export OPENAI_API_KEY="your_key_here"
    

🛠️ Installation

  1. Clone the repo

    git clone https://github.com/your-org/your-repo.git
    cd your-repo/owl/community_usecase/gitingest
    
  2. Python environment

    python -m venv venv
    source venv/bin/activate      # macOS/Linux
    venv\\Scripts\\activate     # Windows
    pip install -r requirements.txt
    
  3. Install MCP plugin

    npm install -g @openbnb/mcp-server-git
    

⚙️ Configuration

  • .env: Create in project root:
    OPENAI_API_KEY=your_key_here
    
  • mcp_servers_config.json: Next to app.py:
    {
      "mcpServers": {
        "gitingest": {
          "command": "npx",
          "args": ["-y", "@openbnb/mcp-server-git"]
        }
      }
    }
    

🚀 Running the App

streamlit run app.py

Set the repo in the sidebar, then start chatting!


🔧 Customization

  • Tweak system prompts in st.chat_message calls.
  • Adjust temperature or model type in ModelFactory.create.
  • Style the UI via CSS in the header section.

📂 Project Structure

Gitingest/
├── assets/
│   ├── logo_camel_ai.png
│   ├── logo_github.png
│   └── screenshot_chat.png
├── mcp_servers_config.json
├── app.py              # Main Streamlit chat app
├── requirements.txt    # Python dependencies
└── .env                # Env vars


*Happy repo chatting!*