DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A personal, cloud-synced clipboard PWA: text, links, code snippets, shortcuts, favorite media,
categories and collections — searchable, pinnable, archivable, and synced in real time across
your own trusted devices. One owner account manages everything from /admin-short-ui; anyone
you hand a short-lived access code to gets read-only access at /view.
Built with Next.js 14 (App Router), Supabase (Auth + Postgres + Realtime), and a lightweight CSS "liquid glass" interface — no mock data, no placeholder content, nothing fake left in the code.
/admin-short-ui is whoever controls OWNER_EMAIL's inbox (passwordless magic-link sign-in).
Even if someone else requests a magic link for a different address, the server checks the
signed-in email against OWNER_EMAIL and immediately signs them back out if it doesn't match.
Sign in on your two phones with that one email and both become "approved devices" — there's no
separate device-approval table because the owner session is the approval.items, categories, collections) has
RLS policies that only allow auth.uid() = user_id. Even a leaked anon key can't read or write
another user's data (there's normally only one user: you).access_codes and guest_sessions have no RLS policies for anon/authenticated
roles at all, so they're unreachable except through the server's service-role key. A guest never
gets a Supabase session; they get a short HMAC-signed cookie minted only after the server verifies
the code server-side (expiry, revocation, and use-count are all re-checked on every request to
/api/guest/data, not just at verification time — so revoking a code from the dashboard takes
effect on the guest's very next request).SUPABASE_SERVICE_ROLE_KEY and GUEST_SESSION_SECRET are only read in files marked
server-only (a build-time guard, not just a comment) and are never sent to the browser.backdrop-filter surfaces, fine borders, restrained motion
(and prefers-reduced-motion is respected), responsive at every width with no overlapping layout.src/app/
admin-short-ui/ owner dashboard (protected)
view/ guest read-only view (code-gated)
login/ owner magic-link sign-in
auth/callback/ exchanges the magic link, enforces OWNER_EMAIL
api/access-codes/ owner-only: create / list / revoke guest codes
api/guest/verify/ redeem a code -> signed guest cookie
api/guest/data/ read-only item feed for an active guest session
src/components/ UI (Glass, Dashboard, ItemCard, ItemEditor, AccessCodePanel, …)
src/lib/ Supabase clients, guest-token signing, shared queries/types
src/middleware.ts blocks /admin-short-ui and the owner API routes from non-owners
supabase/migrations/ SQL schema + RLS policies
public/ manifest, service worker, app icons
supabase/migrations/0001_init.sql. (If you
later add more migrations, run them in filename order the same way, or use the Supabase CLI:
supabase db push.)http://localhost:3000/auth/callback under Redirect URLs for local testing, plus
https://<your-vercel-domain>/auth/callback for production.auth/callback checks OWNER_EMAIL), so even if
someone else requests a magic link, they're signed back out immediately and never reach the
dashboard or any owner-only API route.Copy .env.example to .env.local for local dev, and fill in:
NEXT_PUBLIC_SUPABASE_URL= # Project URL from step 1.3
NEXT_PUBLIC_SUPABASE_ANON_KEY= # anon public key from step 1.3
SUPABASE_SERVICE_ROLE_KEY= # service_role key from step 1.3 — keep this secret
[email protected] # the only email allowed into /admin-short-ui
GUEST_SESSION_SECRET= # random 32+ char string, e.g.: openssl rand -base64 32
Never commit .env.local — it's already in .gitignore.
npm install
npm run dev
Open http://localhost:3000. Sign in with OWNER_EMAIL to reach /admin-short-ui; open
http://localhost:3000/view in a private window to test the guest flow with a code you generate
from the dashboard's Share button.
git remote add origin https://github.com/<your-username>/sharekrish.git
git branch -M main
git push -u origin main
(The repo is already initialized and committed locally — see the commit history for what's in it.)
sharekrish.vercel.appsharekrish on the import screen (or afterwards in
Project Settings → General → Project Name). Vercel derives the free *.vercel.app subdomain
directly from the project name, so naming it sharekrish is what gives you
https://sharekrish.vercel.app. If that exact name is already taken on Vercel's shared
domain, Vercel will suffix it (e.g. sharekrish-yourname.vercel.app) — you'll see the final
URL on the project dashboard immediately after the first deploy.GUEST_SESSION_SECRET — Vercel keeps these server-side and never
ships them to the browser for the non-NEXT_PUBLIC_ ones).https://sharekrish.vercel.app/auth/callback to the Redirect URLs (and update Site URL to match)
— magic-link sign-in will fail until that's done.https://sharekrish.vercel.app, sign in with OWNER_EMAIL on both of your phones, and
you're set up.GUEST_SESSION_MINUTES in src/app/api/guest/verify/route.ts if you want a different
redeemed-session length.npm audit will show a few moderate/high advisories in postcss/tailwindcss — these are
build-time-only dev dependencies (they run when compiling CSS during npm run build, not in the
deployed server/browser code), so they don't expose end users. Next.js itself is pinned to
14.2.35, the latest patched release in the 14.x line as of this writing.MIT — do whatever you like with it.