TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Advanced AI-powered research agent that thinks, searches, and provides comprehensive answers for complex queries.
ProductivityTypeScript · CSSGitHub @Haozhe-LiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Advanced AI-powered research agent with a beautiful, Perplexity-inspired interface.
• Clean, Minimal Design: Inspired by Perplexity's invisible design philosophy
• Real-time Thinking Process: Watch the AI agent think, search, and reason
• Canvas Interface: Immersive full-screen experience for research
• Todo Tracking: Visual progress tracking for research tasks
• Source Citations: Collapsible source references for all answers
• SSE Streaming: Real-time updates via Server-Sent Events
3. Open http://localhost:3000 in your browser.Read the full README ↗Advanced AI-powered research agent with a beautiful, Perplexity-inspired interface.
npm install
# or
pnpm install
npm run dev
# or
pnpm dev
The app is pre-configured to use mock data for testing the interface. Try asking any question!
To connect to your real backend:
.env.local:cp .env.example .env.local
.env.local:BACKEND_URL=http://your-backend-url.com/chat
NEXT_PUBLIC_USE_MOCK=false
The app expects a backend endpoint at /chat that:
{ "query": "user question" }This application follows a "invisible design" approach inspired by Perplexity:
/collect is a password-protected tool for producing SFT candidates by hand: pick the
time, location, answer language and memory Omni is told about (each has a shuffle and a
lock), generate with the real agent over as many turns as you like, edit the answer in
the markdown editor, and submit it as a training example. It is not linked from the
product and is disallowed in robots.ts.
finetune/pro_agent/queries.yaml
(lib/collector/queries.ts) can be drawn at random ("Random query", or "Random query +
context" to shuffle the inputs too), filtered by category / language, or picked by hand.
Ones already run are skipped (remembered in the browser).lib/upload-types.ts); and "Add URL"
(up to 5; URLs typed or pasted in the box are picked up as well). They go through the same
upload path as a user's attachment and are recorded as the model saw them: images are kept with
the example, documents appear in the read_file results. As in the chat, a first message with no
words gets "Please read this file / source", and a later one may be files only. Needs the backend's
python -m scripts.init_db after deploy.<question> block in an answer is drawn as the chat's own form
(QuestionBlock); submitting it sends the formatted reply as the next turn.Server-side env:
COLLECTOR_PASSWORD=... # shared login password
COLLECTOR_SESSION_SECRET=... # >= 32 chars; changing it signs everyone out
COLLECTOR_API_KEY=... # same value as the backend's; never sent to the browser
BACKEND_URL=https://... # backend base URL (as for /api/chat)
UPSTASH_REDIS_REST_URL / _TOKEN # login attempts are throttled per IP (8 per 15 min)
proxy.ts bounces any /collect or /api/collect request without a valid signed
session cookie; the API routes check it again. The browser only talks to /api/collect/*,
which forwards an allowlist of backend routes. Formats of the four fields live in
lib/collector/fields.ts and mirror production's; the backend rejects anything else. See
doc/collector.md in the backend repo for how the data is kept identical to production.