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

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/yoheinakajima-ditto
Generated for open source discovery and AI-assisted research.

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.

GitHub: https://github.com/yoheinakajima/ditto
OSRepos URL: https://osrepos.com/repo/yoheinakajima-ditto

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

## Topics

- Python
- AI
- LLM
- Code Generation
- Flask
- Web Development
- No-Code
- Agent

## Repository Information

Last analyzed by OSRepos: Thu Oct 23 2025 20:01:49 GMT+0100 (Western European Summer Time)
Detail views: 2
GitHub clicks: 5

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## 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**

    bash
    git clone https://github.com/yoheinakajima/ditto.git
    cd ditto
    

2.  **Create a Virtual Environment (Optional but Recommended)**

    bash
    python3 -m venv venv
    source venv/bin/activate  # On Windows, use venv\Scripts\activate
    

3.  **Install Dependencies**

    bash
    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:

bash
export OPENAI_API_KEY=your-openai-api-key


For Windows (Command Prompt):

cmd
set OPENAI_API_KEY=your-openai-api-key


For Windows (PowerShell):

powershell
$env:OPENAI_API_KEY="your-openai-api-key"


Then, run the application:

bash
python main.py


#### Option 2: Persistent Setup using a `.env` File (Recommended)

1.  Install `python-dotenv`:

    bash
    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:

    bash
    python main.py
    

## Examples (Usage)

Once installed and configured, using Ditto is straightforward:

1.  **Run the Application**

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

    bash
    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](https://github.com/yoheinakajima/ditto){:target="_blank"}
*   **License**: [MIT License](https://github.com/yoheinakajima/ditto/blob/main/LICENSE){:target="_blank"}