DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
Sudo-chan is an anime-style AI companion for your desktop. Say her name and she answers in Urdu or English, helps with your screen after you click to allow it, and runs file tasks only with your appro
생산성TypeScript · JavaScriptGitHub @salahudingsalahudin-ai온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Sudo-chan is an anime-style AI companion for your desktop. Say her name and she answers in Urdu or English, helps with your screen after you click to allow it, and runs file tasks only with your approval. Early version for Linux.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A deep-scroll product introduction built with Next.js App Router, TypeScript, Tailwind CSS, React Three Fiber, drei, postprocessing, GSAP ScrollTrigger, Lenis, and Framer Motion.
npm install
npm run dev
Open http://localhost:3000. Build and run the production version with npm run build and npm start.
supabase/schema.sql to create the public.waitlist table and its unique, lowercase email constraint..env.example to .env.local and configure SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, and a private, random RATE_LIMIT_SALT. These values are used by the server route only; never add a NEXT_PUBLIC_ prefix to the service-role key. Without the salt, submissions return 503. Never share these values in chat or commit local environment files.The API is POST /api/waitlist. It validates and lowercases email addresses, returns a friendly duplicate response, limits request bodies to 2 KiB, and limits submissions to five attempts per hour per hashed IP. Apply the complete supabase/schema.sql, including the waitlist_rate_limits table and consume_waitlist_attempt RPC: the limiter is shared through Supabase rather than process memory. Raw IPs are not stored by this limiter. Supabase requests have a five-second timeout. GET /api/waitlist returns the real count without exposing email addresses.
The 3D scene lives in components/SudoChanCanvas.tsx with its parts in components/three/: a procedural, original anime-style companion (CompanionBot, toon-shaded with an outline and a rim light), a listening/speaking glow ring (ListeningRing, green = listening, violet = speaking, the same colours as the desktop app), four orbiting UI cards with a depth-of-field style blur (FloatingCards) and one explanatory prop per scroll scene (StoryProps: wake-word chip, approval card with Allow/Deny, screen frame with a consent button, privacy lock). The listening and speaking animation is a made-up demo loop (sampleVoiceDemo in lib/heroScene.ts); nothing reads the microphone. Everything is procedural, with no model download. Optionally, if USE_REAL_MODEL in components/sudoChanConfig.ts is turned on and public/models/sudo-chan.glb exists, components/three/GlbBot.tsx loads that model instead of the procedural character (the loader is imported on demand). lib/heroScene.ts holds the pure helpers (scene poses, story weights, renderer choice) and is unit tested. components/SudoChanJourney.tsx mounts the 3D scene only when chooseRenderer says so: phones and touch devices, reduced motion, Save-Data, low-core or low-memory devices and missing WebGL get the lightweight SVG twin (components/CompanionSvg.tsx). A WebGL context loss also falls back to the SVG companion.
All landing page copy and scene labels are collected in content.ts.
/. The WebGL scene is code-split (roughly 250 KiB gzip, three.js included) and is imported only on desktop browsers that pass chooseRenderer.npm test: run the Vitest waitlist route tests with mocked Supabase; this does not verify the deployed database or environment configuration.npx tsc --noEmit: check TypeScript.npm run build: compile the production application.The desktop companion has an early local Electron prototype in desktop/. Run it separately with its setup and preview notes in desktop/README.md; chat replies are local mock text. It is not a released product and it does not capture the screen or call an AI service. The website describes the desktop app's behavior in content.ts: keep it honest (microphone only while listening is on; screen only after click-consent, never saved on disk; files only with tools on and click approval; API keys on the user's computer, not encrypted on Linux). The app is not released: there is no download link, only the waitlist.