🐣 smol developer
What is the project about?
smol developer is a "junior developer" agent that can either generate an entire codebase from a product specification or provide building blocks for integrating a similar agent into other applications. It's designed to be a tool for rapid prototyping and scaffolding of software projects.
What problem does it solve?
It aims to replace rigid, one-shot project starters (like create-react-app
) with a dynamic, adaptable system. It allows developers to quickly generate a starting codebase for any kind of application by simply describing it in natural language (or a more structured prompt). It also reduces the initial setup time for new projects and allows for iterative development with AI assistance.
What are the features of the project?
- Codebase Generation: Generates a complete codebase from a product specification provided in a prompt (either a string or a Markdown file).
- Iterative Development: Supports a human-in-the-loop workflow where developers can refine the prompt, add error messages, and iterate on the generated code.
- Library Mode: Can be used as a library (
smol_dev
) to integrate its code generation capabilities into other applications. Provides functions for planning, specifying file paths, and generating code. - API Mode: Exposes an API (following the Agent Protocol) to create tasks and execute steps, allowing for remote code generation.
- Debugging Assistance: Includes a
debugger.py
(in Git Repo mode) that can analyze the codebase and suggest code changes based on error messages. - Multiple Model Support: Supports both GPT-4 and GPT-3.5-turbo.
- Function Calling API: Leverages OpenAI's Function Calling API for structured output (e.g., file paths).
- Shared Dependencies: Identifies and manages shared dependencies between files to ensure code coherence.
What are the technologies used in the project?
- Python: The primary programming language.
- Poetry: For dependency management.
- OpenAI API (GPT-4 and GPT-3.5-turbo): For code generation and planning.
- Modal: Used for managing dependencies, parallelizing code generation, and potentially for cloud deployment.
- Agent Protocol: Used for the API mode.
What are the benefits of the project?
- Rapid Prototyping: Quickly generates a starting point for new projects, saving developers time and effort.
- Flexibility: Can generate code for a wide variety of applications, unlike fixed starter templates.
- Human-Centric Workflow: Keeps the human developer in control, allowing for iterative refinement and manual intervention.
- Reduced Boilerplate: Automates the creation of boilerplate code, letting developers focus on the core logic.
- Easy Integration: Can be integrated into other projects as a library or used via an API.
- Learning/Exploration: Helps developers explore unfamiliar APIs and technologies by generating example code.
What are the use cases of the project?
- Creating new applications: Quickly scaffolding the initial structure of a new project (web apps, CLIs, Chrome extensions, etc.).
- Prototyping ideas: Rapidly testing out new ideas and concepts without investing significant time in manual coding.
- Building internal tools: Generating simple utilities and scripts.
- Integrating AI into existing applications: Adding code generation capabilities to other software development tools.
- Learning new technologies: Generating example code for unfamiliar APIs or frameworks.
- Automating repetitive coding tasks: Creating scripts or tools to automate common development workflows.
