Ditto Code: Your AI Software Engineer

Ditto Code builds and deploys web apps from a chat message, and makes code changes in your GitHub repos. Describe what you want and watch the agent work in real time.

By
Omar Barazanji
Published
May 28, 2026
Read
8 min read
  • product
  • ditto-code
  • ai-agents
  • engineering
  • github

What if you could describe a web app in plain English and have it live on the internet five minutes later?

That’s Ditto Code. You type a message, an AI agent writes the code, installs the dependencies, runs the tests, and deploys it to a public URL. You watch every step in real time. You don’t need a terminal, Git commands, a deployment pipeline or any coding experience.

Ditto Code now ships with GitHub integration, two project types and real-time event streaming. The roadmap goes further: running an entire company from Ditto.

Ditto Code architecture: from chat message through intent analysis, agent execution, and auto-deploy to a live app in minutes.

How It Works

The whole system fits into five steps, and you only do the first one.

1. You describe what you want

Open Ditto and type something like:

Build me a portfolio website with a dark theme,
project showcase section, and a contact form.

Or if you have GitHub connected:

Please refactor the auth module in @myorg/backend
to use JWT tokens instead of session cookies.

That message is all you contribute to the deployment.

2. Ditto understands your intent

A Gemini Flash Lite model analyzes your request and makes two decisions:

  • Project type: Is this a new deployable app (type=app) or work on an existing codebase (type=code)?
  • Project identity: Should this create a new project or continue an existing one?

If you mentioned a GitHub repo with @owner/repo, the system skips the classifier entirely and creates a deterministic code project.

3. An agent starts

Ditto dispatches your task to a dedicated cloud environment: 4 CPUs, 8 GiB of memory, 30 minutes of runtime, running OpenHands, an open-source AI coding agent. The agent has access to:

  • A full Linux environment with Node.js, Python, and common build tools
  • Chromium for browsing documentation and testing
  • Your Ditto memory via MCP (so it knows your preferences and past projects)
  • Authenticated GitHub access (if connected) with gh CLI for PRs and issues

4. You watch it work

Many “vibe coding” tools show you a spinner and then a result. Ditto Code’s Agent Tasks UI streams every action in real time:

  • Terminal: npm install, npm run build, test outputs
  • Write: Every file the agent creates or modifies
  • Think: The agent’s reasoning about design decisions
  • Browse: Documentation lookups and web research
  • Deploy: The final deployment step with your live URL

You can see the agent’s token usage, cost, and runtime at a glance. If something goes wrong, stop the job and give it new instructions.

5. Your app goes live

For type=app projects, the agent’s output is automatically deployed to Google Cloud Run. You get a public URL within minutes. The source code is saved as Ditto artifacts, so you can change it, fork it or hand it to a developer later.

For type=code projects, the agent clones your repos, makes the changes, commits them, and can open pull requests directly on GitHub.

Full Ditto Code architecture showing the chat agent, Cloud Run execution, project types, real-time event log, GitHub integration, and roadmap.

GitHub Integration: @mention Your Repos

The newest part of Ditto Code is GitHub integration through the Ditto Code GitHub App.

Connect in seconds

  1. Go to Settings > Apps in Ditto
  2. Click Connect GitHub (OAuth popup, same flow as Google)
  3. Install the Ditto Code GitHub App on your personal account or organization
  4. Done. Your repos are now accessible from the chat.

@mention any repo

Once connected, type @ in the message composer and a fuzzy-search popover appears with all your accessible repositories. Select one (or several) and they become part of your prompt. The @owner/repo mention renders as a clickable badge in the chat, linking directly to the GitHub page.

GitHub integration flow: connect account, install Ditto Code app, @mention repos in chat, agent clones and works on them.

What happens behind the scenes

When you mention a repo and Ditto dispatches an agent job:

  • The backend generates a short-lived installation access token using the GitHub App’s RSA private key
  • The runner authenticates via git config --global url."https://x-access-token:TOKEN@github.com/".insteadOf (tokens never appear in clone URLs)
  • GH_TOKEN and GITHUB_TOKEN environment variables are set for gh CLI access
  • The agent can read code, write code, commit changes, open PRs, and interact with issues

Permissions

The Ditto Code GitHub App requests only what it needs:

PermissionLevelWhy
ContentsRead & WriteClone repos, push commits
Pull requestsRead & WriteOpen and update PRs
IssuesRead & WriteRead context, create issues
MetadataReadList repos, branches
Commit statusesReadCheck CI status
EmailsReadIdentify the GitHub account

You can revoke access at any time from Settings > Apps.

Two Project Types

Ditto Code has two modes, and it picks the right one for you.

App Projects (type=app)

For when you want a deployable web application.

  • Ditto scaffolds a Flask + HTML template
  • The agent writes your app, installs dependencies, tests it
  • On completion, the workspace is packaged into a Docker container and deployed to Cloud Run
  • You get a live public URL immediately
  • No DNS, no Dockerfile, no CI/CD pipeline to configure

Example prompts:

  • “Build me a recipe organizer with search and categories”
  • “Make a dashboard that shows real-time crypto prices”
  • “Create a landing page for my consulting business”

Code Projects (type=code)

For when you want to work on existing repositories.

  • Ditto clones your GitHub repos (depth=50 for speed)
  • The agent reads the codebase, maps the structure and makes targeted changes
  • Changes are committed with clear messages
  • The agent can open PRs directly
  • No deployment (the repo has its own CI/CD)

Example prompts:

  • “Add rate limiting to the API endpoints in @myorg/backend”
  • “Write unit tests for the auth module in @myorg/frontend”
  • “Refactor the database queries to use connection pooling”

What This Means Today

Right now, someone with zero coding experience can:

  1. Open Ditto
  2. Describe a web app in plain English
  3. Watch an AI agent build it in real time
  4. Get a live URL they can share with anyone

The result is a production deployment on Google Cloud Run with a real URL.

We add to what “describe what you want” can produce every week. Today it covers single-page web apps and code changes. The goal is full businesses running on Ditto.

The Roadmap: Running a Company from Ditto

Everything below builds on Ditto Code as it works today. Here’s what’s coming:

Authentication & User Management

Your deployed apps will support user login out of the box. OAuth providers (Google, GitHub), email/password, magic links. Tell Ditto “add user authentication to my app” and it sets up the full auth flow, including protected routes and session management.

Persistent Databases

Every project gets its own database. PostgreSQL for relational data, SQLite for lightweight use cases. Your apps will persist data between sessions, handle migrations, and back up automatically. Say “add a database to store user profiles” and Ditto sets up the schema, ORM, and CRUD endpoints.

Heartbeats: Scheduled & Event-Driven Agents

Spawn an agent job on a schedule or in response to an event. “Check my API uptime every 5 minutes and alert me on Slack if it’s down.” “Every Monday morning, generate a summary report from last week’s data.” With Heartbeats, Ditto runs jobs when you are not at your desk.

Custom Domains with DNS Registration

Point your own domain at your Ditto-deployed app. We’ll handle DNS configuration, SSL certificates, and routing. Go from “build me a landing page” to “deploy it at mycoolstartup.com” in one conversation.

Full-Stack Applications

Frontend, backend, API, and database, all generated and deployed together. React or SolidJS frontends talking to Go or Python backends, with proper API contracts, error handling, and production configuration. One conversation, full stack.

Multi-Harness Execution

Today, Ditto Code runs on OpenHands. Soon, you’ll be able to choose your execution engine:

  • Cursor Cloud SDK (Composer 2.5): Bring your own Cursor API key for cloud-based code generation with Cursor’s Composer 2.5 model, which Cursor reports at 79.8% on SWE-Bench Multilingual
  • Claude Code: Anthropic’s coding agent for complex refactoring and architecture work
  • Antigravity: A harness built for full-stack app generation
  • OpenHands (default): The open-source agent Ditto Code runs on today

Each harness has different strengths. Ditto picks the best one for the job, or you choose.

The Bigger Picture

The tools to build software have been getting more accessible for decades. First we got higher-level languages. Then frameworks. Then no-code builders. Each step lowered the bar, but you still needed to understand the concepts underneath.

Ditto Code removes that requirement. You don’t need to know what a framework, a deployment or a database is. You describe the result you want. Ditto Code builds it in front of you, in real time, and you own the full source code.

Ditto Code gives people who don’t write code the same ability to ship software as developers. That includes the person with a business idea who can’t afford a dev team, the designer who wants to prototype without waiting for engineering, the researcher who needs a data dashboard but doesn’t want to learn React, and the founder who wants to test an idea the same day.

We ship improvements to Ditto Code every week. If you want to try it, open Ditto and describe what you want to build.


Questions or feedback? Reach us at support@heyditto.ai

Open a thread.

Ditto remembers what matters from every conversation, so your next idea starts where your last one left off.

Get 20% off your first month of Ditto, and get more out of it every week.