DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.