{"id":40388184,"url":"https://github.com/duongdev/karakeep-social-ai","last_synced_at":"2026-01-20T12:32:26.812Z","repository":{"id":320839788,"uuid":"1083518207","full_name":"duongdev/karakeep-social-ai","owner":"duongdev","description":"A personal bookmark manager that auto-syncs saved posts from multiple social platforms (X, Reddit, YouTube, TikTok, Dribbble, Instagram, Facebook), with AI-powered summarization, categorization, and intelligent search using Claude.","archived":false,"fork":false,"pushed_at":"2025-10-27T02:52:17.000Z","size":337,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-09T22:02:55.988Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duongdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-26T07:23:48.000Z","updated_at":"2025-11-09T03:22:39.000Z","dependencies_parsed_at":"2025-10-26T09:26:37.487Z","dependency_job_id":null,"html_url":"https://github.com/duongdev/karakeep-social-ai","commit_stats":null,"previous_names":["duongdev/karakeep-social-ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/duongdev/karakeep-social-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duongdev%2Fkarakeep-social-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duongdev%2Fkarakeep-social-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duongdev%2Fkarakeep-social-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duongdev%2Fkarakeep-social-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duongdev","download_url":"https://codeload.github.com/duongdev/karakeep-social-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duongdev%2Fkarakeep-social-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-20T12:32:26.701Z","updated_at":"2026-01-20T12:32:26.800Z","avatar_url":"https://github.com/duongdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Karakeep Social AI\n\n\u003e 🔖 Your AI-powered bookmark manager for social media content\n\nAutomatically sync, transcribe, summarize, and search your saved posts from multiple platforms using Claude AI and OpenAI Whisper.\n\n[![Tests](https://img.shields.io/badge/tests-36%2F36%20passing-brightgreen)]() [![Coverage](https://img.shields.io/badge/coverage-~85%25-green)]() [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)]() [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n---\n\n## 📑 Table of Contents\n\n- [Quick Start](#-quick-start)\n- [Features](#-features)\n- [Tech Stack](#️-tech-stack)\n- [Project Status](#-project-status)\n- [Documentation](#-documentation)\n- [Development](#-development)\n- [Testing](#-testing)\n- [Deployment](#-deployment)\n- [Cost Estimates](#-cost-estimates)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Node.js** 20+\n- **Docker Desktop** (for PostgreSQL \u0026 Redis)\n- **Git**\n\n### Installation (5 minutes)\n\n```bash\n# 1. Clone and install\ngit clone https://github.com/yourusername/karakeep-social-ai.git\ncd karakeep-social-ai\nnpm install\n\n# 2. Start database services\ndocker compose up -d\n\n# 3. Run database migrations\nnpm run db:migrate\n\n# 4. Start development server\nnpm run dev\n```\n\n✨ **Server running at http://localhost:3000**\n\n📖 **Next steps**:\n- [Quick Start Guide](guides/GETTING_STARTED.md) - Full setup\n- [Platform Setup](docs/platforms/getting-started.md) - Start syncing Twitter/Reddit 🆕\n\n---\n\n## ✨ Features\n\n### 📱 Multi-Platform Support\n\n**Currently Available:**\n- ✅ **Twitter/X** - Bookmarks and saved tweets ([Setup Guide](docs/platforms/getting-started.md#twitterx-setup))\n- ✅ **Reddit** - Saved posts and comments ([Setup Guide](docs/platforms/getting-started.md#reddit-setup))\n\n**Coming Soon:**\n- 🚧 **GitHub** - ⭐ Starred repositories with README content\n- 📋 **YouTube** - Liked videos with full transcription\n- 📋 **TikTok** - Favorite videos with transcription\n- 📋 **Instagram** - Saved posts and reels with transcription\n- 📋 **Dribbble** - Liked shots\n- 📋 **Facebook** - Saved posts\n\n### 🤖 AI-Powered Features\n\n- **Auto-Summarization** - 2-3 sentence summaries of all content\n- **Key Points Extraction** - Main takeaways from posts\n- **Auto-Tagging** - AI-suggested tags with confidence scores\n- **Smart Categorization** - Automatic assignment to lists\n- **Sentiment Analysis** - Detect positive/negative/neutral tone\n- **Video Transcription** - Convert videos to searchable text\n- **Semantic Search** - Find content using natural language\n- **Q\u0026A System** - Ask questions about your bookmarks\n\n### 🎥 Video/Audio Transcription\n\n- **Automatic Transcription** - YouTube, TikTok, Instagram, Twitter videos\n- **Powered by Whisper** - OpenAI's speech-to-text API\n- **Cobalt Integration** - Fast, reliable video downloads\n- **Full-Text Search** - Search within video transcripts\n- **No Dependencies** - Works on Vercel serverless\n\n---\n\n## 🏗️ Tech Stack\n\n### Backend\n- **[Hono](https://hono.dev/)** - Fast, lightweight web framework\n- **[Prisma](https://www.prisma.io/)** - Type-safe ORM with PostgreSQL\n- **[Claude 3.5 Sonnet](https://www.anthropic.com/)** - AI analysis and Q\u0026A\n- **[OpenAI Whisper](https://platform.openai.com/docs/guides/speech-to-text)** - Audio transcription\n- **[Cobalt API](https://github.com/imputnet/cobalt)** - Video/audio downloads\n- **[BullMQ](https://docs.bullmq.io/)** - Background job processing\n\n### Infrastructure\n- **PostgreSQL 16** - Primary database\n- **Redis 7** - Cache and job queue\n- **Docker** - Local development environment\n- **Vercel** - Serverless deployment (production)\n\n### Testing \u0026 Quality\n- **Jest** - Test framework (36/36 tests passing)\n- **TypeScript** - Type safety and developer experience\n- **ESLint \u0026 Prettier** - Code quality and formatting\n- **GitHub Actions** - CI/CD pipeline\n\n---\n\n## 📊 Project Status\n\n### ✅ Phase 1: Foundation (COMPLETED)\n\n**Week 1-2** - All core infrastructure is in place:\n\n- ✅ TypeScript + Hono project setup\n- ✅ Prisma ORM with PostgreSQL\n- ✅ Complete database schema (8 tables, 2 enums)\n- ✅ Docker development environment\n- ✅ Health check endpoints\n- ✅ Environment configuration\n- ✅ **Testing infrastructure (36 tests, ~85% coverage)**\n- ✅ CI/CD with GitHub Actions\n\n**API Endpoints**:\n- `GET /` - Project info\n- `GET /health` - Health check + database status\n- `GET /health/db` - Database connectivity\n- `GET /api` - API endpoint listing\n\n### 🚧 Phase 2: Platform Adapters (Next)\n\n**Week 3-4** - Building platform integrations:\n\n- [ ] Adapter architecture framework\n- [ ] GitHub adapter (⭐ starred repos)\n- [ ] Twitter/X adapter (bookmarks)\n- [ ] Reddit adapter (saved posts)\n\n### 📋 Upcoming Phases\n\n- **Phase 3** (Week 5) - Sync Engine\n- **Phase 4** (Week 6-7) - AI Integration\n- **Phase 5** (Week 8) - Search \u0026 Q\u0026A\n- **Phase 6** (Week 9) - Deployment \u0026 Monitoring\n\n📅 **Full roadmap**: [docs/planning/roadmap.md](docs/planning/roadmap.md)\n\n---\n\n## 📖 Documentation\n\n### 🎯 Essential Guides\n\n| Guide | Description |\n|-------|-------------|\n| **[Getting Started](guides/GETTING_STARTED.md)** | Complete setup in 5 minutes |\n| **[Docker Setup](guides/DOCKER.md)** | PostgreSQL + Redis configuration |\n| **[Testing Guide](guides/TESTING.md)** | Writing and running tests |\n| **[Setup Progress](guides/SETUP_COMPLETE.md)** | Phase 1 completion summary |\n| **[Test Progress](guides/TEST_SETUP_COMPLETE.md)** | Testing infrastructure summary |\n\n### 📚 Comprehensive Documentation\n\nThe `docs/` folder contains detailed documentation organized by topic:\n\n```\ndocs/\n├── planning/          # Project planning and roadmap\n│   ├── overview.md\n│   ├── quick-start.md\n│   ├── roadmap.md\n│   └── cost-analysis.md\n├── architecture/      # System design and architecture\n│   ├── system-design.md\n│   ├── database-schema.md\n│   └── queue-system.md\n├── ai/               # AI integration guides\n│   ├── claude-setup.md\n│   ├── features.md\n│   ├── semantic-search.md\n│   └── prompt-engineering.md\n├── transcription/    # Video transcription\n│   ├── overview.md\n│   ├── cobalt-setup.md\n│   ├── whisper-setup.md\n│   └── queue-processing.md\n├── platforms/        # Platform adapters\n│   ├── adapter-architecture.md\n│   ├── github.md\n│   └── adding-platforms.md\n└── deployment/       # Deployment guides\n    ├── vercel.md\n    ├── workers.md\n    ├── docker.md\n    └── environment.md\n```\n\n**Start here**: [docs/README.md](docs/README.md)\n\n### 📝 Additional Files\n\n- **[CLAUDE.md](CLAUDE.md)** - Instructions for Claude Code AI assistant\n- **[LICENSE](LICENSE)** - MIT License\n- **[guides/archive/](guides/archive/)** - Deprecated documentation (reference only)\n\n---\n\n## 💻 Development\n\n### Project Structure\n\n```\nkarakeep-social-ai/\n├── src/\n│   ├── index.ts              # Main application entry\n│   ├── lib/\n│   │   ├── db.ts             # Prisma client\n│   │   └── env.ts            # Environment config\n│   ├── routes/\n│   │   └── health.ts         # Health check routes\n│   ├── services/             # Business logic (coming soon)\n│   ├── middleware/           # Custom middleware (coming soon)\n│   ├── types/                # TypeScript types\n│   └── __tests__/            # Test files\n├── prisma/\n│   ├── schema.prisma         # Database schema\n│   └── migrations/           # Database migrations\n├── docs/                     # Comprehensive documentation\n├── guides/                   # Quick guides and tutorials\n├── .github/workflows/        # CI/CD configuration\n└── docker-compose.yml        # Docker services\n```\n\n### Available Scripts\n\n```bash\n# Development\nnpm run dev              # Start dev server with hot reload\nnpm run build            # Build for production\nnpm start                # Run production build\n\n# Database\nnpm run db:generate      # Generate Prisma Client\nnpm run db:migrate       # Create and run migrations\nnpm run db:studio        # Open Prisma Studio GUI\nnpm run db:push          # Push schema without migration\nnpm run db:reset         # Reset database (dev only)\n\n# Testing\nnpm test                 # Run all tests\nnpm run test:unit        # Run unit tests\nnpm run test:integration # Run integration tests\nnpm run test:watch       # Watch mode\nnpm run test:coverage    # Coverage report\n\n# Code Quality\nnpm run lint             # Run ESLint\nnpm run format           # Format code with Prettier\n\n# Docker\ndocker compose up -d            # Start services\ndocker compose down             # Stop services\ndocker compose ps               # Check status\ndocker compose logs -f postgres # View logs\n```\n\n### Environment Variables\n\nThe `.env` file is automatically created with Docker defaults:\n\n```env\n# Database (Docker)\nDATABASE_URL=postgresql://karakeep:karakeep_dev_password@localhost:5432/karakeep_dev\n\n# Redis (Docker)\nREDIS_URL=redis://:karakeep_redis_password@localhost:6379\n\n# Server\nPORT=3000\nNODE_ENV=development\n\n# AI Services (add when ready)\nANTHROPIC_API_KEY=sk-ant-xxx    # Claude AI\nOPENAI_API_KEY=sk-xxx           # Whisper transcription\n\n# Platform APIs (add as needed)\nGITHUB_TOKEN=ghp_xxx\nTWITTER_BEARER_TOKEN=xxx\nREDDIT_CLIENT_ID=xxx\nREDDIT_CLIENT_SECRET=xxx\n```\n\nSee [guides/DOCKER.md](guides/DOCKER.md) for Docker configuration details.\n\n---\n\n## 🧪 Testing\n\n### Test Status\n\n```\n✅ 36/36 tests passing\n📊 ~85% code coverage\n⚡ ~1.7s total runtime\n```\n\n### Test Structure\n\n```\nsrc/__tests__/\n├── setup.ts              # Global test configuration\n├── helpers/\n│   ├── test-db.ts       # Database test utilities\n│   └── test-server.ts   # HTTP endpoint utilities\n├── unit/                # Unit tests (16 tests)\n│   ├── env.test.ts      # Environment config\n│   └── db.test.ts       # Database client\n└── integration/         # Integration tests (20 tests)\n    ├── health.test.ts   # API endpoints\n    └── models.test.ts   # Prisma models\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nnpm test\n\n# Run specific test suites\nnpm run test:unit\nnpm run test:integration\n\n# Watch mode (auto-rerun on changes)\nnpm run test:watch\n\n# Generate coverage report\nnpm run test:coverage\n```\n\n**Full testing guide**: [guides/TESTING.md](guides/TESTING.md)\n\n---\n\n## 🚀 Deployment\n\n### Vercel (Recommended)\n\n```bash\n# Install Vercel CLI\nnpm i -g vercel\n\n# Deploy\nvercel --prod\n```\n\nConfigure environment variables in Vercel dashboard.\n\n### Docker\n\n```bash\n# Build image\ndocker build -t karakeep .\n\n# Run container\ndocker run -p 3000:3000 \\\n  -e DATABASE_URL=postgresql://... \\\n  -e REDIS_URL=redis://... \\\n  karakeep\n```\n\n**Deployment guides**:\n- [Vercel Deployment](docs/deployment/vercel.md)\n- [Docker Deployment](docs/deployment/docker.md)\n- [Background Workers](docs/deployment/workers.md)\n\n---\n\n## 💰 Cost Estimates\n\n**For 100 bookmarks/month** (50 text, 30 videos, 20 GitHub repos):\n\n| Service | Usage | Monthly Cost |\n|---------|-------|--------------|\n| **Vercel** | Hobby plan | $0.00 |\n| **PostgreSQL** | Neon free tier | $0.00 |\n| **Redis** | Upstash free tier | $0.00 |\n| **Claude AI** | 100 analyses | $0.20 |\n| **Whisper API** | 30 videos × 8 min | $2.40 |\n| **Cobalt API** | Video downloads | $0.00 |\n| **GitHub API** | Repository data | $0.00 |\n| **Total** | | **~$2.60/mo** 🎉 |\n\n**Detailed cost analysis**: [docs/planning/cost-analysis.md](docs/planning/cost-analysis.md)\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. **Fork the repository**\n2. **Create a feature branch** (`git checkout -b feature/amazing-feature`)\n3. **Make your changes** and add tests\n4. **Run tests** (`npm test`)\n5. **Commit your changes** (`git commit -m 'Add amazing feature'`)\n6. **Push to branch** (`git push origin feature/amazing-feature`)\n7. **Open a Pull Request**\n\n### Development Guidelines\n\n- Write tests for new features\n- Follow TypeScript strict mode\n- Use Prisma for database access\n- Update documentation\n- Follow existing code style\n- Keep tests passing (36/36 ✅)\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- **[Anthropic](https://www.anthropic.com/)** - Claude AI\n- **[OpenAI](https://openai.com/)** - Whisper API\n- **[Cobalt](https://github.com/imputnet/cobalt)** - Video download API\n- **[Prisma](https://www.prisma.io/)** - Database ORM\n- **[Hono](https://hono.dev/)** - Web framework\n\n---\n\n## 📞 Support\n\n- 📖 **Documentation**: [docs/README.md](docs/README.md)\n- 🐛 **Issues**: [GitHub Issues](https://github.com/yourusername/karakeep-social-ai/issues)\n- 💬 **Discussions**: [GitHub Discussions](https://github.com/yourusername/karakeep-social-ai/discussions)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built with ❤️ using TypeScript, Hono, Prisma, and Claude AI**\n\n[⬆ Back to top](#karakeep-social-ai)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduongdev%2Fkarakeep-social-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduongdev%2Fkarakeep-social-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduongdev%2Fkarakeep-social-ai/lists"}