Sirji is an Open Source AI Software Development Agent.
Built with ❤️ by True Sparrow
Sirji is a Visual Studio Code extension that works as an AI software development agent.
It is a virtual software developer that includes individual agents for planning, coding, researching, and executing projects.
Sirji solves users’ problem statements ranging from a new greenfield project to an existing brownfield project where it enhances existing code, fixes bugs, and writes test cases.
The extension leverages the capabilities of VS Code, including the Editor, Terminal, and Project Explorer.
It provides an interactive chat interface through which users submit their problem statements, answer questions, and provide feedback to Sirji.
Additionally and most importantly, Sirji sets up your local development environment by installing system-level packages as well as programming language-specific dependencies. It later executes the generated code in your local development environment.
Create a fully interactive website for playing the Tic-Tac-Toe game.
Watch on YouTube: https://www.youtube.com/watch?v=DC_gmz04Ovs
Sirji has been tested on macOS only for now. We know there are certain OS-specific functionalities that we will soon generalize.
Make sure you have installed all of the following prerequisites on your machine:
- Visual Studio Code (>= 1.80.2)
- Node.js (>= 18) and npm (>= 8.19)
- Python (>= 3.10) - Make sure
python --version
runs without error. - tee command - Make sure
which tee
runs without error.
Also, you will need an OpenAI API key to access the GPT-4 Turbo model.
You can start using Sirji by installing this extension from the Visual Studio Marketplace.
Sirji gets the work done using it's following agents:
- The Planning Agent takes a problem statement and breaks it down into steps.
- The Coding Agent proceeds step by step through the generated steps to solve the problem programmatically.
- The Research Agent utilizes RAG (Retrieval-Augmented Generation) and gets trained on URLs and search terms. It can later use this acquired knowledge to answer questions posed by the Coding Agent.
- The Executor Agent is responsible for Filesystem CRUD, executing commands, and installing dependencies. The Executor Agent is implemented directly within the extension and is written in TypeScript.
![VS Code Extension - Architecture](https://private-user-images.githubusercontent.com/7627517/320227896-0cee6e34-a42a-4db0-81db-d2f930132465.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ0MTIzOTksIm5iZiI6MTcyNDQxMjA5OSwicGF0aCI6Ii83NjI3NTE3LzMyMDIyNzg5Ni0wY2VlNmUzNC1hNDJhLTRkYjAtODFkYi1kMmY5MzAxMzI0NjUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjNUMTEyMTM5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Mzc1MDQwYzE3OTJkZTAyNjdlZjEzNjMwMTUzOWMxOWFiMzVhNGMxOTQxNmZhYTE1MGIzN2FjMmI4ZTdjYTk5NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.qrqBcdkwvUwPehmGaSL1Az-jOV5rmaVAc1qwJEY8hss)
The Planning Agent, Coding Agent, and Research Agent are developed within the Python package sirji-agents
(located in the agents
folder of this monorepo).
Communication among these agents is facilitated through a defined message protocol. The Message Factory (responsible for creating, reading, updating, and deleting messages according to the message protocol) and the permissions matrix are developed in the Python package sirji-messages
(located in the messages
folder of this monorepo).
The tools for crawling URLs (converting them into markdowns), searching for terms on Google, and a custom logger are developed within the Python package sirji-tools
(located in the tools
folder of this monorepo).
All these packages are invoked by Python Adapter Scripts, which are spawned by the extension.
We welcome contributions to Sirji! If you're interested in helping improve this VS Code extension, please take a look at our Contributing Guidelines for more information on how to get started.
Thank you for considering contributing to Sirji. We look forward to your contributions!
If you run into any issues or have suggestions, please report them by following our issue reporting guidelines. Your reports help us make Sirji better for everyone.
Distributed under the MIT License. See LICENSE
for more information.