gitwtfhub

wtf is squash?

r-sri-ram/squash — explained in plain English

Analysis updated 2026-05-18

0TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TL;DR

Turns a messy bug report or screen recording into a clean, structured ticket with reproduction steps, using AI text and vision analysis.

Mindmap

mindmap
  root((Squash))
    What it does
      Structures bug reports
      Reads screen recordings
      Flags missing details
    Tech stack
      Next.js and React
      Convex backend
      GPT-5.4 vision
    Use cases
      Bug ticket creation
      GitHub issue export
      Recording to steps
    Audience
      Developers
      Support teams
      QA testers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Convert a messy Slack bug report into a structured, filed-ready ticket.

REASON 2

Turn a screen recording of a bug into written reproduction steps automatically.

REASON 3

Flag missing details, like build version or account id, before a ticket is filed.

REASON 4

Export a generated ticket as Markdown or open it as a prefilled GitHub issue.

What's in the stack?

Next.jsReactConvexTypeScriptTailwind CSS

How it stacks up

r-sri-ram/squash0xkinno/astraea0xkinno/halcyon
Stars000
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatehardhard
Complexity3/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires a Convex account and an OpenAI compatible API key before it will run.

MIT license: free to use, copy, modify, and distribute, as long as you keep the original copyright notice.

Wtf does this do

Squash turns a messy bug report into a clean, ready to file ticket. You can paste in a rambling Slack message, a support note, or a voice note transcript, or you can record your screen while reproducing the bug, and Squash returns a structured ticket with steps to reproduce, expected versus actual behavior, environment details, severity, and a note on what information is still missing before a developer could start fixing it. The core problem it addresses is that writing accurate steps to reproduce a bug is tedious and often skipped, so reports bounce back and forth between people asking for more detail. Squash tries to do that conversion in one step, with no template required. For screen recordings specifically, it samples a handful of frames from the capture and uses a vision model to figure out what steps happened on screen, rather than requiring the person to type them out. The whole pipeline runs inside Next.js and Convex without a separate media processing server. The browser captures the screen and grabs downscaled frames using a canvas, those frames upload to Convex file storage, and a Convex action calls the AI model to generate and stream the ticket fields onto the screen as they are written. It is built with Next.js and React for the frontend, Convex for the database, file storage, and realtime updates, GPT-5.4 for both text structuring and vision based analysis of screen recordings, and Tailwind CSS for styling. Running it locally requires Node 18 or newer, a Convex account, and an OpenAI compatible API key, after which you install dependencies, start a Convex dev deployment, set your model credentials, and run the app. It can also open a prefilled GitHub issue with one click if you set a repo environment variable. The project is released under the MIT license.

Yoink these prompts

Prompt 1
Help me set up Squash locally with a Convex dev deployment and an OpenAI compatible API key.
Prompt 2
Explain how Squash extracts reproduction steps from a screen recording using frame sampling.
Prompt 3
Show me how to configure the LLM_MODEL and LLM_VISION_MODEL environment variables in Convex for Squash.
Prompt 4
Walk me through enabling the one-click GitHub issue button in Squash.

Frequently asked questions

wtf is squash?

Turns a messy bug report or screen recording into a clean, structured ticket with reproduction steps, using AI text and vision analysis.

What language is squash written in?

Mainly TypeScript. The stack also includes Next.js, React, Convex.

What license does squash use?

MIT license: free to use, copy, modify, and distribute, as long as you keep the original copyright notice.

How hard is squash to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is squash for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.