kepler-chat/README.md
2025-06-18 20:07:59 +01:00

80 lines
1.9 KiB
Markdown

# thom-chat
Clone of [T3 Chat](https://t3.chat/)
## 🚀 Features
- Cached query for fast chat loading
- Openrouter provider for access to 400+ models
- File uploads
- Web search
- Full-text search over your chat history
- Cursor-like rules
- Privacy mode for streams and screen-sharing
- Markdown rendered messages with syntax highlighting
- Chat sharing
- Keyboard shortcuts
## 🛠️ Tech Stack
- **Framework**: SvelteKit
- **Language**: TypeScript
- **Styling**: Tailwind
- **Backend**: Convex
- **Auth**: BetterAuth + Convex
- **Components**: Melt UI (next-gen)
- **Testing**: Humans
- **Package Manager**: pnpm
- **Linting**: ESLint
- **Formatting**: Prettier
## 📦 Running locally
1. Clone the repo
2. Install dependencies with `pnpm install`
3. Copy `.env.example` to `.env` and fill in the values
4. Run `pnpm dev`
5. Open [http://localhost:5173](http://localhost:5173)
## TODO
- [x] Login & Auth
- [x] useCachedQuery
- [x] Convex schemas for chats
- [x] Actual fucking UI for chat
- [x] Providers (BYOK)
- [x] Openrouter
- ~[ ] HuggingFace~
- ~[ ] OpenAI~
- [x] File upload
- [x] Ensure responsiveness
- [x] Streams on the server (Resumable streams)
- [x] Syntax highlighting with Shiki/markdown renderer
- [x] Eliminate FOUC (kinda)
- [x] Cascade deletes
- [x] Google Auth
- [x] Fix light mode (urgh)
- [x] Privacy mode
### Chat
- [x] loading state
- [x] deal with error states, both on creation attempt and message generation failure
- [x] delete conversations option
- [x] conversation title generation
- [x] kbd powered popover model picker
- [x] autosize
- [x] AbortController for message generation
- [x] Per route msg persistance
### Extra
- [x] Web Search
- [ ] Chat branching
- [ ] Regenerate message
- ~[ ] Image generation~
- [x] Chat sharing
- [ ] 404 page/redirect
- ~[ ] Test link with free credits~
- [x] Cursor-like Rules (@ieedan's idea!)
- [x] Full-text search