promptodo
First 10 prompts on our key

Plain-English todos in.
Prompts your agent can act on out.

promptodo is a lightweight todo list for developers. Point a project at a codebase, write what needs doing in a sentence, and get back a prompt for Claude Code, Codex or Cursor with the file paths, constraints and acceptance criteria already in it.

No card. After 10, connect your own Anthropic or OpenAI key.

Add a signed-out landing page

Keep the existing server-rendered shell and theme tokens.

1 assumption made
  • The landing page is shown only to signed-out visitors.

Wrong? Edit the todo and regenerate.

Built from 3 files
  • src/views.ts
  • src/app.ts
  • public/app.css
Add a signed-out landing page at GET /.

Context: the app is server-rendered HTML. layout() owns the doctype, the theme attribute, the header, main and footer, so the new renderer supplies body markup only.

Scope: src/app.ts and src/views.ts. No new stylesheet, font or client framework.

Acceptance criteria:
- A signed-out visitor to / sees the landing body instead of a redirect to /login.
- An authenticated visitor still redirects to /projects.
- tests/views.test.ts covers both branches.

Testing: npm test. The suite needs a real Postgres, so run npm run test:db:up first.

01How it works

Three steps, then your agent has everything it needs

1

Point a project at a codebase

Connect GitHub, upload a digest of a local folder, or paste what matters. A project is one codebase plus the todos you want prompts for.

2

Write the todo in plain English

One line about what needs doing. Attach a screenshot if the change is visual. No context assembly, no template to fill in.

3

Read it, then paste it

The prompt lands with the files it was built from and the assumptions it made. Edit anything, copy it, hand it to your agent.

02What goes into a prompt

Three kinds of context, assembled for you

Split by how often each part changes and what it costs to produce, so the stable parts sit in the cached prefix and only the slice is rebuilt per todo.

Facts

Extracted mechanically on every refresh: the commands CI actually runs, the environment surface, routes, the data model, formatter and TypeScript conventions, and one real test file. Every one is checkable against the repo.

Free. Rebuilt on refresh.

The brief

Written once per commit and shared by every project on it: what the system is, its areas, its invariants, and what would surprise a newcomer. Claims citing a file that is not in the repo are dropped.

Cached per commit sha.

The task slice

Per todo: the files that todo is probably about, with real code for the top few and signatures for a wider ring. Lexical, not embeddings, because todos use the codebase's own vocabulary.

Weak match? The prompt says so.

03Checkable output

Every prompt shows its work

Grounding is not a guarantee. A prompt lists the repository files it was built from and states what it had to assume, so a wrong choice is visible before you paste it into an agent rather than after.

  • The files it read, named and linked
  • The assumptions it made, open by default
  • Editable prompt text you can save by hand
  • Regenerate when the todo or the repo moves
1 assumption made
  • The landing page is shown only to signed-out visitors.

Wrong? Edit the todo and regenerate.

Built from 3 files
  • src/views.ts
  • src/app.ts
  • public/app.css

Weak match on a todo? It says so, instead of naming the wrong file with conviction.

04Codebase context

Three ways to attach a codebase

All three produce the same digest: file tree, README, agent instruction files and root manifests, capped at 36 KB. Committed dotenv files are walked and listed, never read.

GitHub

Public repositories work anonymously. Private ones use a read-only connection to contents and metadata, on the repositories you pick. Tokens are minted per fetch and never stored.

Read-only. No write access, ever.

Local folder

A hosted app cannot read your disk, so a dependency-free script walks the tree, skips node_modules and build output, and posts the digest with your own API token.

One command, no install.

Paste

A textarea for anything the optimizer should know: stack, conventions, key paths. The fastest way to try it on a codebase that is not on GitHub.

Nothing to connect.

curl -fsSL https://promptodo.com/digest.mjs -o /tmp/digest.mjs && \
PROMPTODO_URL=https://promptodo.com PROMPTODO_TOKEN=<your token> PROMPTODO_PROJECT=<id> node /tmp/digest.mjs

05Target agent

Shaped for the agent you paste it into

Claude Code explores a repository itself, so it gets the files to start from rather than their contents. Codex gets a single self-contained specification. Cursor gets the change first and the orientation second. Detected from the instruction files in your repo, and changeable in one dropdown.

Claude CodeCodexCursorAny agent

06Keys and cost

Ten prompts on us, then your own key

Asking for an API key before you have seen a single generated prompt is a hard sell, so you do not have to. The allowance is a counter, not a tier: nothing about the pipeline changes between the two.

10 prompts free

A lifetime allowance on our key, so you can read real output on your own repository before handing over a credential. No card, no plan, no feature gating.

Generation is limited to 10 per minute, whoever is paying.

Your key after that

Connect an Anthropic or OpenAI key and generation is unlimited and billed to you directly. Connecting your own key only changes who pays.

Keys are encrypted at rest, verified once with the provider, never returned by any endpoint, and shown only as their last four characters.

What it does

  • One codebase per project
  • Reference images on a todo
  • Editable prompts, saved by hand
  • Four themes, light and dark
  • Works with JavaScript off

What it does not

  • Teams and sharing
  • Due dates, tags and search
  • Notifications
  • Billing and plans
  • Full-repo indexing or embeddings

Outside the MVP on purpose. It is a todo list that writes prompts, not a project manager.

Four palettes

Pick the one you can read at 1am

One token layer, four themes. Your choice is written onto the page before the first paint, so it never flashes the wrong palette. Pick one here and it follows you through signup.

Write the todo. Keep the context.

Ten prompts on our key, on your own repository, before you decide anything.