{"id":20806061,"url":"https://github.com/olasunkanmi-se/codebuddy","last_synced_at":"2025-05-07T04:23:40.508Z","repository":{"id":230271856,"uuid":"778951389","full_name":"olasunkanmi-SE/codebuddy","owner":"olasunkanmi-SE","description":"A Generative AI Assistant with advance agentic capabilities. Codebuddy uses machine learning to generate code, complete tasks, and streamline coding tasks workflow.","archived":false,"fork":false,"pushed_at":"2025-04-27T08:16:15.000Z","size":1071,"stargazers_count":38,"open_issues_count":5,"forks_count":19,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-27T08:27:05.154Z","etag":null,"topics":["ai-agent","ai-agents","ai-tools","aiagents","aitools","artifical-intelligense","coding-assistant","event-driven-architecture","functioncalling","llms","machine-learning","reasoning-agent","typescript","vscode-extensions"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olasunkanmi-SE.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2024-03-28T18:24:51.000Z","updated_at":"2025-04-27T08:16:19.000Z","dependencies_parsed_at":"2024-06-23T05:57:34.555Z","dependency_job_id":"5f6abb04-6943-4db9-a6bf-40e2c96c6d1e","html_url":"https://github.com/olasunkanmi-SE/codebuddy","commit_stats":null,"previous_names":["olasunkanmi-se/codebuddy"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olasunkanmi-SE%2Fcodebuddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olasunkanmi-SE%2Fcodebuddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olasunkanmi-SE%2Fcodebuddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olasunkanmi-SE%2Fcodebuddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olasunkanmi-SE","download_url":"https://codeload.github.com/olasunkanmi-SE/codebuddy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252811268,"owners_count":21807916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-agent","ai-agents","ai-tools","aiagents","aitools","artifical-intelligense","coding-assistant","event-driven-architecture","functioncalling","llms","machine-learning","reasoning-agent","typescript","vscode-extensions"],"created_at":"2024-11-17T19:18:00.805Z","updated_at":"2025-05-07T04:23:40.494Z","avatar_url":"https://github.com/olasunkanmi-SE.png","language":"TypeScript","readme":"# CodeBuddy: Your AI Coding Assistant\n\nCodeBuddy is a Visual Studio Code extension that enhances developer productivity through AI-powered code assistance. It provides intelligent code review, refactoring suggestions, optimization tips, and interactive chat capabilities powered by multiple AI models including Gemini, Groq, Anthropic, and Deepseek.\n\nThe extension leverages advanced language models to help developers write better code, understand complex codebases, and automate routine tasks. Key features include code commenting, refactoring suggestions, performance optimization, error fixing, code explanation, commit message generation, and interactive code chat. CodeBuddy integrates seamlessly with VS Code's interface and supports TypeScript/JavaScript development workflows with extensibility for other languages.\n\n## Install in Vscode Market Place\n\nhttps://marketplace.visualstudio.com/items?itemName=fiatinnovations.ola-code-buddy\n\n## Architecture\n\n```mermaid\nflowchart TD\n\n    %% VS Code Extension Frontend\n    subgraph \"VS Code Extension Frontend\"\n        CE[\"Editor Interface\"]:::frontend\n        CL[\"Commands Layer\"]:::frontend\n        WV1[\"Webview (VS Code)\"]:::frontend\n        WV2[\"Webview (React UI)\"]:::frontend\n    end\n\n    %% Core Application Layer\n    subgraph \"Core Application\"\n        AA[\"AI Agents\"]:::core\n        MS[\"Memory System\"]:::core\n        subgraph \"Application Services\"\n            BL[\"Business Logic\"]:::core\n            AI[\"Application Interfaces\"]:::core\n        end\n        subgraph \"Infrastructure Layer\"\n            HTTP[\"HTTP Services\"]:::infra\n            LOG[\"Logging\"]:::infra\n            REP[\"Repository\"]:::infra\n            LS[\"Local Storage\"]:::infra\n        end\n    end\n\n    %% AI Providers\n    subgraph \"AI Providers\"\n        LLM[\"Language Model Integrations\"]:::provider\n        ESP[\"External Service Providers\"]:::provider\n    end\n\n    %% Storage Layer\n    subgraph \"Storage Layer\"\n        DB[\"Database (SQLite)\"]:::storage\n        FS[\"File System\"]:::storage\n        VD[\"Vector Database\"]:::storage\n    end\n\n    %% Connections between VS Code Extension Frontend\n    CE --\u003e|\"UserInput\"| CL\n    CL --\u003e|\"ProcessRequest\"| AA\n    CL --\u003e|\"UIUpdate\"| WV1\n\n    %% Connections within Core Application\n    AA --\u003e|\"ContextManagement\"| MS\n    AA --\u003e|\"Orchestration\"| BL\n    AA --\u003e|\"ContractCall\"| AI\n\n    %% Connections to Infrastructure\n    AA --\u003e|\"APIRequest\"| HTTP\n    HTTP --\u003e|\"APICall\"| LLM\n    HTTP --\u003e|\"APICall\"| ESP\n    HTTP --\u003e|\"Feedback\"| WV1\n\n    %% Connections from Application Services to Storage\n    BL --\u003e|\"DataAccess\"| DB\n    BL --\u003e|\"FileAccess\"| FS\n    BL --\u003e|\"EmbedData\"| VD\n    AI --\u003e|\"RepositoryAccess\"| REP\n\n    %% Memory System stores context to Storage\n    MS --\u003e|\"StoreContext\"| DB\n\n    %% Styling Classes\n    classDef frontend fill:#cce5ff,stroke:#2a6592,stroke-width:2px;\n    classDef core fill:#d4edda,stroke:#155724,stroke-width:2px;\n    classDef infra fill:#f8d7da,stroke:#a71d2a,stroke-width:2px;\n    classDef provider fill:#fff3cd,stroke:#856404,stroke-width:2px;\n    classDef storage fill:#d1ecf1,stroke:#0c5460,stroke-width:2px;\n\n    %% Click Events\n    click CE \"https://github.com/olasunkanmi-se/codebuddy/blob/main/src/extension.ts\"\n    click CL \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/commands\"\n    click WV1 \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/webview\"\n    click WV2 \"https://github.com/olasunkanmi-se/codebuddy/tree/main/webviewUi\"\n    click AA \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/agents\"\n    click MS \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/memory\"\n    click BL \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/services\"\n    click AI \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/application\"\n    click HTTP \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/infrastructure/http\"\n    click LOG \"https://github.com/olasunkanmi-se/codebuddy/blob/main/src/infrastructure/logger/logger.ts\"\n    click REP \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/infrastructure/repository\"\n    click LS \"https://github.com/olasunkanmi-se/codebuddy/blob/main/src/infrastructure/storage/local-storage.ts\"\n    click LLM \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/llms\"\n    click ESP \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/providers\"\n    click DB \"https://github.com/olasunkanmi-se/codebuddy/tree/main/src/infrastructure/repository\"\n    click FS \"https://github.com/olasunkanmi-se/codebuddy/blob/main/src/services/file-system.ts\"\n```\n\n### Database\n\n- SQLite database for code pattern storage\n- Vector embeddings for semantic code search\n\n### File System\n\n- Workspace management for multi-root projects\n- TypeScript configuration detection\n- File watching and indexing services\n\n## Roadmap\n\n- [x] Codebase Understanding: Comprehensive local codebase indexing with Retrieval-Augmented Generation (RAG) capabilities.\n- [x] Code search: Search code across the entire codebase\n- [x] Rewrite the Webview UI with React\n- [x] Incorporate AI agents for seamless interaction with external resources and APIs.\n- [x] Context Pinning: Allow users to pin specific directories, files, and code elements (functions, classes, etc.) as persistent context for AI models.\n- [ ] Automated Documentation Generation: Generate comprehensive and up-to-date codebase documentation.\n- [x] Intelligent Orchestration: Coordinate AI agents' activities with proper workflow.\n- [x] Access to real-time data.\n- [ ] Support for local LLMs such as Ollama\n- [x] Support for Deepseek model\n\n## Repository Structure\n\n```\n.\n├── src/                          # Source code directory\n│   ├── agents/                   # Agent orchestration and interfaces\n│   ├── application/             # Core application constants and interfaces\n│   ├── commands/                # Command implementations for VS Code extension\n│   ├── infrastructure/          # Infrastructure layer (HTTP, logging, database)\n│   ├── llms/                    # Language model integrations (Anthropic, Deepseek, Gemini, Groq)\n│   ├── memory/                  # Memory management implementations\n│   ├── services/                # Core services (file management, authentication, etc.)\n│   ├── webview/                 # Webview UI components\n│   └── extension.ts             # Main extension entry point\n├── webviewUi/                   # React-based UI components\n│   ├── src/                     # UI source code\n│   └── package.json             # UI dependencies\n├── package.json                 # Main extension configuration and dependencies\n└── tsconfig.json               # TypeScript configuration\n```\n\n### Contribution\n\n1. Fork the repository. Make a branch from Development.\n2. npm install the packages\n3. Click Run, an option on your screen's top bar, then click Start Debugging. Run -\u003e Start Debugging\n4. A new instance of VS Code will be opened up. This is like your test instance; all changes made on the Codebuddy repo can be seen on this instance.\n5. The main entry into the application is the extension.ts. For the Webview, the main entry is the webview.tsx\n6. Raise a PR\n7. For more info, check the contributing.md page\n\n## Usage Instructions\n\n### Installation\n\n1. Ensure you have Visual Studio Code version 1.78.0 or higher installed.\n2. Install the CodeBuddy extension from the Visual Studio Code Marketplace.\n\n### Configuration\n\n1. Open VS Code settings (File \u003e Preferences \u003e Settings).\n2. Search for \"CodeBuddy\" in the settings search bar.\n3. Configure the following settings:\n   - Select the Generative AI model (Gemini, Groq, Anthropic, or XGrok)\n   - Enter the API key for your chosen model\n   - Choose your preferred font family and chat view theme\n\n### Troubleshooting\n\n1. API Key Issues:\n\n   - Problem: \"Failed to generate content\" error message.\n   - Solution: Double-check your API key in the CodeBuddy settings.\n\n2. Model Selection:\n\n   - Problem: Features not working as expected.\n   - Solution: Ensure you've selected the correct AI model in the settings.\n\n3. Performance Issues:\n   - Problem: Slow response times from CodeBuddy.\n   - Solution: Check your internet connection and consider switching to a faster AI model.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folasunkanmi-se%2Fcodebuddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folasunkanmi-se%2Fcodebuddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folasunkanmi-se%2Fcodebuddy/lists"}