Ditto: The Simplest Self-Building Coding Agent for Flask Apps

Summary
Ditto is a user-friendly Python tool that generates multi-file Flask applications from simple natural language descriptions. It leverages a straightforward LLM loop to automate the coding process, enabling users to transform ideas into functional web applications through a no-code interface. This agent simplifies development by automatically planning and constructing applications based on plain English input.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Ditto, developed by yoheinakajima, is described as "the simplest self-building coding agent." This innovative Python project simplifies the creation of multi-file Flask applications by allowing users to generate them from simple natural language descriptions. Leveraging a straightforward LLM loop with a few tools, Ditto automates the coding process, aiming to transform your ideas into functional web applications through a no-code interface.
Key features of Ditto include:
- Simple Natural Language Input: Describe your desired application in plain English.
- Automated Code Generation: Automatically generates routes, templates, and static files.
- Self-Building Agent: Plans and constructs the application without manual coding.
- Modular Structure: Organizes code into a clean, modular layout.
Installation
To get started with Ditto, follow these steps:
Prerequisites
- Python 3.7 or higher
pippackage manager
Installation Steps
- Clone the Repository
git clone https://github.com/yoheinakajima/ditto.git cd ditto - Create a Virtual Environment (Optional but Recommended)
python3 -m venv venv source venv/bin/activate # On Windows, use venv\Scripts\activate - Install Dependencies
pip install litellm
Setting the OPENAI_API_KEY
You'll need to set your OPENAI_API_KEY in your environment.
Option 1: Temporary Setup in Terminal
For macOS/Linux:
export OPENAI_API_KEY=your-openai-api-key
For Windows (Command Prompt):
set OPENAI_API_KEY=your-openai-api-key
For Windows (PowerShell):
$env:OPENAI_API_KEY="your-openai-api-key"
Then, run the application:
python main.py
Option 2: Persistent Setup using a .env File (Recommended)
- Install
python-dotenv:pip install python-dotenv - Create a
.envfile in the project root and add your API key:OPENAI_API_KEY=your-openai-api-key - Run the application:
python main.py
Examples (Usage)
Once installed and configured, using Ditto is straightforward:
- Run the Application
python main.py - Access the Web Interface
Open your web browser and navigate to
http://localhost:8080. - Describe Your Application
On the home page, use the form to describe the Flask application you wish to create.
- Monitor Progress
After submission, the application will process your request. You can monitor its progress in real-time.
- View the Generated Application
Once the generation is complete, rerun the Flask app to interact with your newly created application.
python main.py
Why Use It
Ditto offers a compelling solution for developers and non-developers alike who want to quickly build Flask web applications. Its no-code interface, powered by an LLM, drastically reduces the time and effort required for initial setup and coding. It's an excellent tool for rapid prototyping, learning Flask development through generated examples, or simply automating the boilerplate code for new projects. By translating natural language into functional code, Ditto democratizes web application development.
Links
- GitHub Repository: yoheinakajima/ditto
- License: MIT License