Qurio is a fast, polished AI Knowledge workspace for multi-provider setups (Gemini, SiliconFlow, OpenAI-compatible and more to come). Stream reasoning, keep knowledge organized, and switch themes on the fly.
- Ready for multiple AI providers with dual model slots (Lite + Default) and live model fetching.
- Chat-first UX: reasoning view, inline images, rich Markdown with code blocks, one-tap copy.
- Organized knowledge: spaces, bookmarks, and a library view; pin-able sidebar for focus.
- Production-grade feel: light/dark/system themes, emoji picker, keyboard shortcuts, responsive layouts.
- Backend ready: Supabase persistence with RLS, plus GitHub Pages deployment baked in.
- Chat-first UX: fast streaming replies, optional reasoning/thinking output, tool call support, rich markdown with code highlighting, and one-tap copy for AI messages.
- Multi-provider ready: Gemini, SiliconFlow, and generic OpenAI-compatible providers with dual model slots (Lite + Default) and live model fetching (SiliconFlow lists chat sub-type models only).
- Organized knowledge: spaces to group threads, a library view for recent conversations, bookmarks for quick recall, and a pin-able sidebar for focus.
- Question Timeline: innovative collapsible sidebar that displays user questions as interactive cards with search functionality, time-based grouping (Today, Yesterday, dates), and one-click navigation to any question.
- Configurable context: custom system prompt, adjustable context window, and per-provider model IDs (including custom inputs and OpenAI-compatible base URLs; SiliconFlow uses a fixed endpoint).
- Media friendly: attach images directly in the chat input and render them inline in the transcript.
- Built-in persistence: Supabase stores spaces, chat sessions, and messages with RLS isolation; test your connection from the Settings modal.
- Polished interface: light/dark/system themes, emoji picker, and keyboard shortcuts (Enter to send, Shift+Enter for a new line).
- React 19 + TanStack Router v1 for routing and layouts.
- Zustand for lightweight state management.
- RSBuild + Bun for fast dev/build, linting with ESLint/Prettier.
- Styling via Tailwind CSS v4, styled-components, and Lucide icons.
- AI clients: Google Generative AI SDKs plus the OpenAI SDK targeting SiliconFlow/OpenAI-compatible endpoints.
- Data layer: Supabase schema and migrations in
supabase/. - Markdown/rendering:
react-markdown,remark-gfm, andreact-syntax-highlighter.
-
Prerequisites
- Bun 1.3+
- A Supabase project (for persistence)
-
Install
git clone <your-repo-url> cd qurio bun install
-
Environment
Copy.env.exampleto.envand fill in:PUBLIC_SUPABASE_URL,PUBLIC_SUPABASE_KEYPUBLIC_GOOGLE_API_KEY(Gemini)PUBLIC_SILICONFLOW_API_KEY(base URL is fixed tohttps://api.siliconflow.cn/v1/)PUBLIC_OPENAI_API_KEYand optionalPUBLIC_OPENAI_BASE_URL
-
Database
In Supabase, open the SQL editor and runsupabase/schema.sql(orsupabase/init.sql) to create tables and RLS policies. -
Develop
bun run dev
Open the shown local URL (default
http://localhost:5173). -
Build / Lint
bun run build bun run lint
- Open Settings to pick your provider, drop in API keys, test the Supabase connection, set the system prompt, and tune the context window.
- Use the Model section to fetch the latest models for Gemini/SiliconFlow (SiliconFlow is filtered to chat-only) or type a custom model ID/base URL for OpenAI-compatible endpoints.
- Lite model powers titles/related questions/space suggestions; Default model powers main chat responses.
- Create and edit Spaces, move threads between them, and star favorites in Bookmarks. Browse recent conversations in Library.
- Attach images directly in the chat input; copy AI responses with one click; toggle themes via the cycle control (light -> dark -> system).
- Use the Question Timeline feature: Click the "View Timeline" button to open a collapsible sidebar that displays all your questions as cards. Search through questions, navigate by time groups (Today, Yesterday, specific dates), and click any card to jump directly to that question in the conversation.
- Non-commercial only: This project is provided for personal/educational use. Commercial use, resale, or production deployment is not permitted without explicit permission from the maintainers. See LICENSE.
/new_chat- start a fresh conversation/conversation/:conversationId- continue an existing thread/spacesand/space/:spaceId- manage and browse workspaces/library- recent conversations/bookmarks- starred threads
bun run dev- start the dev serverbun run build- production build with RSBuildbun run preview- preview the production buildbun run lint- lint the project
This project uses GitHub Actions to deploy the main branch to GitHub Pages.
- Deploy to GitHub Pages (
.github/workflows/ci-cd.yml): On push tomain, installs deps, builds with Bun/RSBuild, uploads thedistartifact, and deploys to GitHub Pages.
Pull requests are welcome for non-commercial improvements (bug fixes, docs, UI polish). Please open an issue first for major changes.