Skip to content

0xdps/pinboard-gpt-extension

Repository files navigation

Pinboard GPT — Pin the Messages That Matter

Save and organize ChatGPT responses. Pin individual messages or entire conversations, add tags, and find them instantly.

Chrome Web Store Firefox Add-ons Version License Website Supports Coming Soon

📖 Table of Contents

✨ Features

Current (ChatGPT Support)

  • Pin individual messages - Save specific responses
  • Pin entire chats - Bookmark complete conversations
  • 📋 Chat Outline - View conversation structure and jump to any message
  • 🏷️ Tag system - 200+ preset tags across 17 categories or create custom tags
  • 🔍 Fuzzy search - Type abbreviations like "tst" to find "test-case"
  • 🎯 Tag organization - Add up to 3 tags per pin
  • 📦 Filter tabs - View all pins, chat pins, or message pins
  • ⚡ Jump back - Return to the original conversation
  • 💾 Export/Import - Backup and restore your pins
  • 🐛 Debug logging - Troubleshooting with persistent debug toggle
  • ⚙️ Settings - Consolidated interface
  • 💾 Storage & Sync - Free: local storage (10 pins). Pro: Chrome/Firefox Sync. Premium: cloud sync.
  • 🌙 Dark mode - Automatic theme detection

🚀 Coming Soon - Multi-Platform Support

Expanding to support all major AI assistants:

  • 🤖 Claude (Anthropic)
  • 💎 Gemini (Google)
  • ⚡ Grok (xAI)
  • 🔍 DeepSeek
  • And more!

📢 Vote for your favorite in our GitHub Discussions!

🚀 Quick Start

Install from Browser Stores

Chrome: 🚀 Install from Chrome Web Store

Firefox: 🦊 Install from Firefox Add-ons

One-click install with automatic updates for both browsers.

Install from Source

# Clone repository
git clone https://github.com/devendrapratap02/pingpt-chrome-extension.git
cd pingpt-chrome-extension

# Install dependencies (for building icons/assets)
npm install

# Build extension
npm run build:chrome

# Load in Chrome
# 1. Go to chrome://extensions/
# 2. Enable "Developer Mode"
# 3. Click "Load unpacked"
# 4. Select the build/chrome/ folder

⚠️ Google Sign-In Setup (Optional): If you want to use Google authentication features, you'll need to configure OAuth2 credentials. See OAUTH_SETUP.md for detailed instructions.

📖 Usage

Pin a Message (3 Ways)

  1. Hover Method - Move mouse over any message → Click "Pin" button
  2. Right-Click - Select text → Right-click → "Pin selection to Pinboard GPT"
  3. Quick Pin - Click the "Pin Message" button (bottom-right of ChatGPT)

Pin an Entire Chat

  1. Click the "Pin Chat" button (bottom-right, below Chat Outline)
  2. Name is auto-filled from sidebar
  3. Description is pre-filled with your first prompt (editable)
  4. Add up to 3 tags
  5. Click "Pin Chat"

Navigate Long Conversations

  1. Click the "Chat Outline" button (bottom-right of ChatGPT)
  2. See all messages in a scrollable list
  3. Click any message to jump directly to it
  4. Perfect for lengthy debugging sessions or tutorials

Manage Pins

  • View all pins - Click extension icon in toolbar
  • Filter pins - Use tabs to view All / Chats / Messages
  • Search - Type in search box to filter by name, content, or tags
  • Jump to message - Click "Open" to navigate and highlight
  • Export/Import - Backup pins or sync across devices
  • Delete - Click "Delete" to remove unwanted pins

🌐 Website & Deployment

Visit our official website: pinboardgpt.app

The website includes:

  • Interactive feature showcase with browser detection
  • Installation guides for Chrome and Firefox
  • Usage tutorials and developer documentation
  • User feedback collection system

Deploy to Vercel

# Deploy to production
npm run deploy

# Preview deployment  
npm run deploy:preview

# Build frontend locally
npm run build:frontend

# Run frontend locally
npm run dev:frontend
# Visit: http://localhost:8080

Website Features

  • Browser Detection: Shows appropriate install button for user's browser
  • Responsive Design: Works on desktop and mobile
  • Feedback System: Collects user feedback via GitHub Issues
  • Progressive Enhancement: Works with JavaScript disabled

� Feedback System Setup

The website includes a comprehensive feedback system that collects user feedback via GitHub Issues.

⚡ Quick Setup (5 minutes)

1. Create GitHub Token

# Open GitHub settings
open https://github.com/settings/personal-access-tokens/new

# Configure fine-grained token:
# - Name: Pinboard GPT Feedback
# - Repository: gpt-pinboard-extension (selected repositories only)
# - Permissions: Issues (Read and write), Metadata (Read)

2. Add to Vercel

vercel env add GITHUB_TOKEN
# Paste your token when prompted

3. Deploy & Test

npm run deploy
npm run feedback:test  # Test the setup

Security Features

  • Rate Limiting: 1 submission per 5 minutes per IP
  • Spam Protection: Extension verification (form only shown to verified users), math CAPTCHA, honeypot fields, content validation
  • Origin Validation: Only accepts requests from approved domains
  • Content Filtering: Blocks common spam patterns and malicious content

Feedback Management

npm run feedback:issues  # View all feedback issues
npm run feedback:logs    # Monitor submissions
npm run feedback:env     # Check environment setup

🛠️ Development

For detailed development instructions, see DEVELOPMENT.md.

Quick Commands

npm install          # Install dependencies
npm run build        # Generate icons and assets
npm run dev:chrome   # Development build for Chrome
npm run dev:chrome   # Development build for Chrome
npm run dev:firefox # Run Firefox build
npm run dev:frontend  # Run frontend locally

npm run pack # Package extension for stores npm run release # Build and package in one step

Feedback system commands

npm run feedback:setup # Setup feedback system npm run feedback:test # Test feedback system npm run feedback:logs # View feedback logs


### Quick Setup for Contributors

```bash
# 1. Clone repository
git clone https://github.com/0xdps/gpt-pinboard-extension.git
cd gpt-pinboard-extension

# 2. Install dependencies
npm install

# 3. Build extension
npm run build

# 4. Load in browser
# Chrome: Load build/chrome/ folder in chrome://extensions/
# Chrome: Load build/chrome/ folder in chrome://extensions/
# Firefox: Load build/firefox/ folder in about:debugging

See DEVELOPMENT.md for complete setup, testing, and contribution guidelines.

📚 Documentation

Quick Navigation

Task Section Purpose
Install extension Quick Start Get started in 2 minutes
Setup feedback system Feedback System Configure GitHub Issues integration
Deploy website Website & Deployment Deploy to Vercel
Development Development Build, test, contribute
Get help Support Troubleshooting guide
Legal PRIVACY.md Privacy policy
Changes CHANGELOG.md Version history

🎯 Use Cases

User Type Use Cases
Developers Pin code snippets or entire debugging sessions; use Chat Outline to navigate complex technical discussions
Researchers Pin specific insights or complete research conversations; organize with filter tabs
Students Pin study notes or full tutorial conversations; use Chat Outline for lengthy learning sessions
Writers Pin templates or entire brainstorming sessions; navigate long creative discussions easily

🔧 Technical Stack

Extension

  • Manifest V3 - Latest Chrome extension format
  • IndexedDB - Local storage via custom wrapper
  • XPath + Text Anchors - Dual message location system
  • CSP Compliant - No eval(), no remote scripts

API (Premium Features)

  • Framework: Hono - Ultra-lightweight (13KB) serverless framework
  • Database: Turso - Edge SQLite with Drizzle ORM
  • Auth: Google OAuth + Email/Password with JWT tokens
  • Deployment: Vercel Serverless Functions (AWS Lambda)
  • Performance: 150-300ms cold starts, <100ms warm responses

📄 License

MIT License - see LICENSE file

🆘 Support & Troubleshooting

📧 Contact & Support

� Common Issues & Quick Fixes

Pins not showing in popup?

  1. Go to chrome://extensions/ → Find Pinboard GPT → Click refresh 🔄
  2. Reload ChatGPT page (F5)
  3. Try creating a new pin

Pin button not appearing?

  1. Refresh ChatGPT page
  2. Check extension is enabled at chrome://extensions/
  3. Try right-click method: Select text → Right-click → "Pin selection to Pinboard GPT"

Can't click "Open" button?

  1. Check popup blocker settings
  2. Grant extension tab permissions
  3. Verify conversation still exists

Highlight not showing?

  • Wait a few seconds for page to load
  • Scroll manually to find message
  • Try with a newly created pin

💡 Pro Tips

  • Name your pins: "Python async explanation" beats "response 1"
  • Use tags: Organize with python, important, todo
  • Export regularly: Backup your pins weekly
  • Date tags: Add 2025-10 for time organization

For more help, check out our GitHub Issues or email us directly.

🙏 Acknowledgments

Built for the ChatGPT community. Special thanks to all contributors and users providing feedback!


Made with ❤️ by Devendra Pratap Singh

About

Chrome and Firefox extension to pin and organize ChatGPT messages with tags, fuzzy search, and export

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors