Swipe through your GitHub issues like Tinder. Close with a left swipe, keep with a right swipe. Powered by GitHub Copilot AI for intelligent issue summaries.
- Tinder-Style Swipe Interface - One card at a time, swipe right to keep, left to close
- GitHub OAuth Authentication - Secure login with device flow (mobile) or web flow (browser)
- AI-Powered Summaries ✨ - Get intelligent issue analysis powered by GitHub Copilot SDK
- Instant Undo - Accidentally closed an issue? Undo it instantly
- Repository Filtering - Focus on specific repos or view all your issues
- Cross-Platform - Works on web, iOS, and Android via React Native + Expo
- Native Feel - Action bar with Close/Undo/Keep buttons, toast notifications, stamp-style swipe overlays
- Node.js 18+ and npm
- GitHub account with repositories containing issues
- GitHub OAuth App (create one here)
- Optional: GitHub Copilot subscription for AI summaries
git clone <your-repo>
cd IssueCrush
npm installCreate a GitHub OAuth App:
- Go to https://github.com/settings/developers
- Click "New OAuth App"
- Fill in:
- Application name: IssueCrush
- Homepage URL:
http://localhost:8081 - Authorization callback URL:
http://localhost:8081
- Click "Register application"
- Copy your Client ID
- Generate a Client Secret
cp .env.example .envEdit .env and add your credentials:
EXPO_PUBLIC_GITHUB_CLIENT_ID=your_client_id_here
GITHUB_CLIENT_SECRET=your_client_secret_here
EXPO_PUBLIC_GITHUB_SCOPE=repo
# Optional: Azure Cosmos DB for persistent sessions (falls back to in-memory)
COSMOS_ENDPOINT=https://your-account.documents.azure.com:443/
COSMOS_KEY=your_cosmos_primary_key
COSMOS_DATABASE=issuecrush
COSMOS_CONTAINER=sessionsImportant: Use
reposcope (notpublic_repo) to enable closing issues.
By default, sessions are stored in memory (lost on server restart). For persistent sessions across restarts and multiple instances, configure Azure Cosmos DB:
- Create a Cosmos DB account (NoSQL API) in Azure Portal or CLI
- Get your endpoint and key from Settings → Keys
- Add the
COSMOS_*variables to your.env
The server auto-creates the database and container on first run.
For Web:
npm run web-devThis starts both the OAuth server (port 3000) and opens the app in your web browser.
For Mobile Development:
npm run devThis starts both the OAuth server (port 3000) and the Expo dev server (port 8081). Then press w to open in web browser, or scan the QR code with Expo Go.
Note: If you navigate to
http://localhost:8081in your browser, you'll see a JSON manifest instead of the app. This is normal - use the commands above to properly launch the web app.
- Click "Start GitHub login"
- Authorize on GitHub
- Enter a repo filter (e.g.,
owner/repo) or leave blank for all issues - Click "Refresh" to load issues
- Swipe right to keep an issue open
- Swipe left to close an issue
- Tap the issue number to open it on GitHub
- Use the bottom action bar for button-based actions
Click the "✨ Get AI Summary" button on any issue card to get an AI-generated analysis including:
- What the issue is about
- Technical context and requirements
- Recommended next steps
The AI summary is powered by the GitHub Copilot SDK running on your backend server.
- GitHub Copilot subscription or access
GH_TOKENenvironment variable with Copilot access (or useCOPILOT_PAT)
IssueCrush/
├── App.tsx # Main app component (UI + swipe logic)
├── server.js # Express server (OAuth + AI proxy)
├── sessionStore.js # Cosmos DB / in-memory session storage
├── AGENTS.md # AI agent context (project knowledge)
├── .agents/ # Installed agent skills (see below)
├── src/
│ ├── api/
│ │ └── github.ts # GitHub API client
│ └── lib/
│ ├── tokenStorage.ts # Secure token storage
│ └── copilotService.ts # Frontend Copilot service
├── .env.example # Environment template
├── package.json # Dependencies and scripts
└── README.md # This file
The .agents/ directory contains the Agent Context System — a persistent memory layer for AI coding agents. It helps agents like GitHub Copilot, Claude, and Cursor retain project knowledge across sessions.
AGENTS.md— Committed project knowledge that all AI agents read automatically.agents/skills/— Installed agent skills (not part of the app's runtime code).agents.local.md— Personal scratchpad (gitignored, created locally via the skill's init script)
These files do not affect the app. You can safely ignore them if you're not using AI coding agents.
npm run web-dev # Start server + open web app (recommended for web)
npm run dev # Start server + Expo dev server (for mobile)
npm run server # Start OAuth/AI server only (port 3000)
npm start # Start Expo app only
npm run web # Open in web browser only
npm run ios # Open in iOS simulator
npm run android # Open in Android emulatornpm test # Run Jest test suite
npx tsc --noEmit # Type-check without building"Failed to connect to auth server"
- Make sure you run
npm run dev(not justnpm start) - The OAuth server must be running on port 3000
"GitHub OAuth failed: bad_verification_code"
- Code expired or already used. Click "Start GitHub login" again
Issues won't close
- Check that your OAuth scope is
repo(notpublic_repo) - Sign out and sign in again to get a new token with the correct scope
"AI summary failed: Failed to fetch"
- Make sure the Express server is running (
npm run server) - Check that
GH_TOKENorCOPILOT_PATis set for Copilot access
"Cannot find module 'babel-preset-expo'"
- Run
npm installto ensure all dependencies are installed - If the issue persists, manually install:
npm install --save-dev babel-preset-expo
"Cannot find module 'react-dom' or 'react-native-web'"
- Install web dependencies:
npx expo install react-dom react-native-web
Blank page or JSON manifest displayed
- Don't navigate directly to
http://localhost:8081- that's the Metro bundler endpoint - Use
npm run web-devinstead, which opens the correct web URL automatically
- React Native + Expo - Cross-platform mobile framework
- react-native-deck-swiper - Tinder-style swipe cards
- Express - OAuth token exchange and AI proxy server
- Azure Cosmos DB - Persistent session storage (optional)
- GitHub Copilot SDK (0.1.32) - AI-powered issue analysis
- Agentation - Visual feedback UI component (web only) by Benji Taylor
- TypeScript - Type-safe development
For Azure Static Web Apps, Vercel, or similar platforms, set the environment variables in their configuration panel.
We welcome contributions! Check out the Contributing Guide to get started.
- Look for issues labeled
good first issueorhelp wanted - Fork the repo and create a feature branch
- Cosmos DB is optional for local development (sessions fall back to in-memory)
- Created by Andrea Griffiths
- Agentation visual feedback component by Benji Taylor - GitHub
- OAuth tokens stored securely using
expo-secure-store(mobile) orAsyncStorage(web) - Client Secret only used server-side, never exposed to client
- All GitHub API calls use user's OAuth token
MIT
Made with ❤️ & 🤖 for developers who want to triage issues faster

