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

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

Updated on October 23, 2025
View on GitHub

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
  • pip package manager

Installation Steps

  1. Clone the Repository
    git clone https://github.com/yoheinakajima/ditto.git
    cd ditto
  2. Create a Virtual Environment (Optional but Recommended)
    python3 -m venv venv
    source venv/bin/activate  # On Windows, use venv\Scripts\activate
  3. 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)

  1. Install python-dotenv:
    pip install python-dotenv
  2. Create a .env file in the project root and add your API key:
    OPENAI_API_KEY=your-openai-api-key
  3. Run the application:
    python main.py

Examples (Usage)

Once installed and configured, using Ditto is straightforward:

  1. Run the Application
    python main.py
  2. Access the Web Interface

    Open your web browser and navigate to http://localhost:8080.

  3. Describe Your Application

    On the home page, use the form to describe the Flask application you wish to create.

  4. Monitor Progress

    After submission, the application will process your request. You can monitor its progress in real-time.

  5. 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