Finally, GitHub issues you don't dread writing.

You know that bug you've been carrying around in your head all week? Tell Issue Composer about it in one messy sentence. It reads your code, writes a proper issue, and files it on your board. Done.

No sign-up. No install. Nothing to configure on your repo. Everything stays in GitHub.

acme/webapp
pending2
Login button unresponsive on mobile
#42 maria · 3
Add password reset flow
#87 jon · 0
progress1
Add dark mode to Settings
#38 ana · 1
1 HTML file 0 servers 0 setup on your repo 100% lives in GitHub
Write

Brain-dump it. It comes out looking like a senior engineer wrote it.

Be honest: half your issues live in your head because writing them properly takes twenty minutes you don't have. So you type "login broken on iphone??" — or worse, nothing at all.

Issue Composer takes that messy thought, reads your actual code first, and turns it into a structured issue with real paths, real symbols and a clear description. You review it, tap Publish, and it's a normal GitHub issue your team can work with.

  • Three moods, one tap: Simple for a quick tidy-up, Feature for user stories, Bug for reports.
  • Grounded, not invented: it cites files and functions that actually exist in your repo.
  • You stay in charge: everything is editable before it's published. Nothing goes out without your OK.
Your note, as you'd actually type it
"login button does nothing on iphone, maybe the tap event? happens since friday"
the AI reads your code, then writes
open #42 · acme/webapp

Login button unresponsive on iOS Safari

Summary

The login CTA doesn't respond to taps on iOS Safari. Regression appears to date from last Friday's release.

Status in the code
  • src/auth/LoginForm.tsx — handler bound to onClick only; no touch fallback.
  • src/ui/Button.tsxpointer-events toggled by a class added in v2.4.
Steps to reproduce

1. Open /login on iOS Safari · 2. Tap "Sign in" · 3. Nothing happens.

Organize

A board that was already set up before you arrived.

No project to create. No columns to configure. No permissions to beg for. Open any repo you can write issues to, and the board is just… there — pending, progress, review, done.

The trick? Statuses are plain GitHub labels. Drag a card and the label changes. Your teammates see exactly the same truth on github.com, with or without Issue Composer. There's no second system to keep in sync, because there is no second system.

  • Drag between columns to change status; drag vertically to keep your own order.
  • New issues land on top of pending, ready to be triaged — no hunting.
  • Delete the app tomorrow and you lose nothing: issues, labels and comments are all still on GitHub.
pending1
Rate-limit the public API
#51 jon
progress2
Login button unresponsive on iOS
#42 maria
Dark mode for Settings
#38 ana
done1
Password reset flow
#87 jon
↕ dragging a card just moves a label — that's the whole setup
Ask

Some days you don't want to manage a tracker. So just talk to it.

The built-in assistant knows your repo — the issues and the code. Ask what's still pending, get a long thread summarized, have it open a follow-up or move three things to review. It does the clicking for you.

And it's not a chatbot bolted on the side: it works with real tools that read and write your actual GitHub issues, and it shows you every action it takes.

On a big screen, dock it — VS Code style — as a sidebar next to the board, and keep talking while you drag cards. Anything it changes shows up beside it, live.

what's left before we can ship the auth work?
list_issues read_file
Two things: #42 (login tap bug, in progress) and #51 (rate limiting, still pending). #87 was finished yesterday. Want me to move #51 into progress?
yes, and open a follow-up to add tests for the reset flow
set_issue_status create_issue
Done — #51 is now in progress, and I created #93 "Add tests for the password reset flow" at the top of pending.

Yours. Actually, properly yours.

Issue Composer has no backend, no accounts and no database — it lives entirely in your browser. Your tokens and keys are stored encrypted on your device — AES-256, under a key your browser refuses to hand over to anyone — and every request goes straight from there to GitHub and to your LLM provider. Nobody else ever sees your code, your issues or your keys. Not even us — there's no "us" server to send them to.

🔐 Keys encrypted at rest, AES-256 🔑 Nothing ever leaves your device 🔒 Settings travel AES-256 encrypted 🗑️ Close the tab, nothing is left behind

Up and running in about a minute.

If you can paste two keys, you're qualified.

1

Open the app

It's a web page. Add it to your phone's home screen if you want it to feel like a native app — because it does.

2

Connect GitHub & your AI

Paste a GitHub token (the app links you to the exact page and permissions) and any OpenAI-compatible LLM key — cloud or local, the app adapts to your provider's quirks automatically. There's a Test LLM button to check it in one tap.

3

Write your first issue

Tap +, type a rough note, pick a mood. Review what the AI wrote and publish. It lands at the top of your board.

Your issues deserve better than "I'll write it up later."

Free, open source, and it takes less time to try than it took to read this page.