jingbong
An imaginary friend for Linear and GitHub, built for async, multi-threaded development – solo or with friends. Run it in the cloud and keep building on the go from the Linear phone app.
github · guide · full install instructions
curl -fsSL https://jingbong.dev/ging_gang_gong_already.sh | sh
## how it works
Braindump what you have. jingbong finds the sharp edges and lays out the options. Explore, discuss, and decide when you're ready, then consolidate into a new checkpoint. Repeat until everything is settled, then build.
jingbong does the legwork, you make the decisions, and Linear keeps the record.
## walkthrough
One issue, start to finish. Mention @jingbong in any comment: it reacts 👀 when it picks up the request and replies in the thread.
Reports page needs a download button, people keep copying the table into spreadsheets.
### ask in plain words
@jingbong <text> asks about the code or requests work in plain words.
@jingbong how does the reports table get its rows?
ReportsTable asks /api/reports for 50 rows at a time. Filters and sort are query params, so the server already knows what's on screen.
### checkpoint
@jingbong cp writes up a suggested title and what's been decided, and posts each open question as its own thread for people to answer.
@jingbong cp
Suggested title: Export reports as CSV
What the issue is: a button on the reports page that downloads the table as a CSV.
Done looks like:
- a download button above the reports table
Export only the 50 rows on screen, or every row matching the current filters?
### options
@jingbong opt in a thread, or a 🤔 reaction on any comment, lays out every reasonable option as its own reply, with trade-offs and no recommendation. 👍 the one you pick.
Export only the 50 rows on screen, or every row matching the current filters?
Every row with the filters applied. But some teams have 200k rows, can a browser even do that? And doesn't Excel mangle accented names?
@jingbong opt
Question: where the CSV gets built, so it stays fast for big teams and opens cleanly in Excel.
What decides it:
- how many rows the biggest exports have
- whether people will wait, or want it sent later
Option A: build it in the browser from paged requests.
No server work; slow and memory-hungry at 200k rows.
Option B: stream it from a new /api/reports.csv.
Fast at any size; one new endpoint.
Option C: background job that emails a link when done.
Handles any size; people wait, and it needs storage.
Option D: export .xlsx with a spreadsheet library.
No Excel encoding trouble; a new dependency.
### checkpoint until it's settled
Run cp again as things get decided. React ✅ on a checkpoint to write it into the issue's title and description.
@jingbong cp
Suggested title: Export reports as CSV
Done looks like:
- a download button above the reports table
- every row matching the current filters and sort
- streamed from a new
/api/reports.csv
Write a UTF-8 byte order mark, so Excel shows accented names correctly?
yes
@jingbong cp
Suggested title: Export reports as CSV
Done looks like:
- a download button above the reports table
- every row matching the current filters and sort
- streamed from a new
/api/reports.csv - UTF-8 with a byte order mark
Open questions: none
✅ Applied to the title and description (previous version kept in this comment).
### build
@jingbong build implements on a new branch, runs the checks and opens one PR per changed repo. It never merges.
@jingbong build
🔨 Building on jingbong/eng-207-export-reports-as-csv
Opened #412, checks pass.
GET /api/reports.csvstreams every matching row, using the same filters and sort as the table- "download CSV" button above
ReportsTable
Assumptions:
- file is named
reports-<date>.csv - button is disabled while the table is loading
## install
Bring your own agent CLI: OpenCode, Claude Code, Codex, Gemini or Cursor.
curl -fsSL https://jingbong.dev/ging_gang_gong_already.sh | sh
Needs git and Node.js 18+. Clones to ~/jingbong, builds it and puts jingbong on your PATH (read the script). Then run /jingbong-setup in your agent from that folder, or follow SELF_HOSTING.md and SETUP_COMMENT_MODE.md to connect Linear and GitHub.