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.