GitHub

🐣 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.
developer screenshot