DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Turns your "Let's hang out sometime" to actual plans
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗An AI that turns "we should hang out" into a real plan. Friends leave voice notes, the AI works out when, where, and what — and the app succeeds when everyone puts their phone down.
.ics calendar file.src/)TanStack Start + React, built with Lovable. Mock mode is on by default so the UI works without the backend.
npm install
npm run dev
Open the URL Vite prints (usually http://localhost:8080). Create a group, leave notes, generate plans, and vote — all against a browser-local mock store.
To hit the real API instead:
# in .env (repo root)
VITE_API_URL=http://localhost:8787
VITE_USE_MOCK=false
Then run the backend in another terminal. The frontend only knows VITE_* values; never put secrets in those.
server/)Node 20+ and TypeScript, built on Hono. State is in memory only; every restart re-seeds a demo group.
cp .env.example .env # repo root; set SERPAPI_KEY if you have one (optional, see below)
cd server
npm install
npm run dev # watch mode; `npm start` for a plain run
The API listens on http://localhost:$PORT (default 8787) and implements every endpoint in docs/api-contract.md under /api. CORS is open (*); set CORS_ORIGIN=https://your-frontend (comma-separated for several) to pin it.
Demo group. On startup the server creates group g_demo ("Friday crew") with Maya, Jordan and Priya's constraints from mock/constraints.sample.json, so you can go straight to the plan step:
curl -X POST localhost:8787/api/groups/g_demo/plan
curl -X POST localhost:8787/api/groups/g_demo/vote -H 'content-type: application/json' -d '{"planId":"p_1","memberName":"Maya"}'
curl -X POST localhost:8787/api/groups/g_demo/vote -H 'content-type: application/json' -d '{"planId":"p_1","memberName":"Priya"}'
curl -OJ localhost:8787/api/groups/g_demo/confirmed.ics
Plan pipeline (POST /api/groups/:id/plan), each step logged with its timing: merge constraints and find shared free windows (everyone first, otherwise the largest subset free for 1h+) → search SerpApi (Google Maps + Google Events) → rankPlans → exactly 3 ranked plans. Votes: a plan is confirmed once it has more than half the members' votes.
SerpApi and the cache. server/serpapi.ts is cache-first. Every successful response is stored in server/cache/serpapi-cache.json, keyed by engine and query, and a cached query never goes to the network. Places closed during the planned window are dropped.
SERPAPI_KEY set, a cache miss makes a live call and saves the result.mock/venues.sample.json and logs a warning.npm run warm-cache, and commit the cache file.LLM functions. The server imports transcribe, extractConstraints and rankPlans from server/llm/index.ts. Until that exists (or for any function it doesn't export) it falls back to mock-backed stubs, and says so in the startup log.
| Env var | Default | Purpose |
|---|---|---|
PORT | 8787 | HTTP port |
SERPAPI_KEY | none | Live SerpApi calls on a cache miss |
SERPAPI_CACHE_FILE | server/cache/serpapi-cache.json | Cache location |
CORS_ORIGIN | * | Allowed origin(s) |
Other scripts: npm run typecheck, npm test.