DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Personal iPhone tools that hold you to what you decided. Web editor + SwiftUI host.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Small iPhone routines that hold you to what you decided. A local-first web editor plus a SwiftUI iPhone app that share one routine format. No AI inference, no tracking; an optional account only syncs your own routines.
Use Node.js 24 LTS for the editor and its current test tooling.
npm ci
npm run dev
Open http://127.0.0.1:3210. The server binds to loopback only. Your routines are saved in this browser's localStorage (and to your account once you sign in); switching browser or port does not carry them with it unless you are signed in. Export backups before clearing browser data.
?routine=<id> in the URL means the browser back button returns to the list. A browser that only has a v1 single draft sees it as its first routine; the old key is left in place.public/routines.pocketwork.json (regenerate with npm run routines) is the shared routine fixture; a test keeps it identical to lib/templates.ts..github/workflows/ci.yml) runs the web checks on Linux and compiles and tests the iPhone app on a macOS runner, uploading simulator screenshots, so the Swift is verified without a Mac.The browser does not block apps. Native source compiles and passes its tests on a simulator, but has not run on a physical iPhone. Follow ios/README.md for signing, provisioning, physical-device checks, and Apple's approval requirements.
Without a configured project everything stays on this browser. To turn on accounts: create a Supabase project, copy .env.example to .env with the Project URL and anon/publishable key, run supabase/schema.sql once in the SQL editor, enable the Google provider under Authentication → Providers, and add http://127.0.0.1:3210 (and any deployed origin) to Authentication → URL Configuration. Sign in with Google appears in the top bar. The whole library is one JSON row per user; the browser stays local-first and reconciles on sign-in, on focus, and after every save (lib/sync.ts: newest edit wins, deletions are remembered for 30 days).
Visual editor → validated v1 JSON → local draft / exported file
↓
SwiftUI native host
↓
preimplemented native capabilities + user consent
lib/library.ts is the collection of tools kept in this browser (pocketwork.library.v1), lib/templates.ts the routines. lib/document.ts is the editor schema. ios/Shared/AppDocument.swift validates the corresponding native boundary. public/starter.pocketwork.json is the shared fixture. There is no executable JS/Swift in a tool document. Screen Time selection tokens remain on device.
lib/runtime.ts is the deterministic browser simulator; it measures deadlines using absolute time rather than assuming intervals fire while a tab sleeps. Changing a configuration resets the preview session. The iOS host uses a separate monitor extension for blocking-session cleanup and local notifications for completion alerts.
npm test
npm run typecheck
npm run verify:ui
npm run build
UI tokens and structural rules are in DESIGN.md and app/tokens.css. tools/ui-lint.mjs derives from the local ui-system skill and gates the build. Browser regression checks are documented in tests/browser.spec.ts and run with npx playwright test after installing a supported browser.
App Store release, a full drag-and-drop layout grid, calendar integrations, and widgets.
Use Sign in with Apple on the website and in the updated TestFlight app with the same Apple account. Start with New page; the ready-made catalog is no longer shown. Existing personal pages are preserved. The website saves locally immediately and syncs after edits, on focus, and every 15 seconds while visible. The iPhone syncs after edits, on opening/foreground, or pull-to-refresh. iOS does not receive cloud changes while the app is closed; open it to apply updated schedules. Choose apps and grant Screen Time access on the phone. Ongoing timer progress and private app selections remain on device.
The existing Supabase libraries table and RLS policies work without another migration. Writes compare the server updated_at timestamp and retry after conflicts. Account libraries are stored separately on each device. iPhone refresh tokens live in Keychain. Google support is implemented but hidden until enabled (web: NEXT_PUBLIC_GOOGLE_ENABLED=true, iOS Info.plist: SupabaseGoogleEnabled=true).
Add com.braydenfeng.pocketwork://auth/callback to Supabase Authentication redirect URLs. iOS reads SupabaseURL and SupabaseAnonKey from build settings, supplied by the manual TestFlight workflow from the same public client settings as the website. No service-role key is bundled. Local iOS builds need SUPABASE_URL and SUPABASE_ANON_KEY build settings.
Off by default. In the iPhone app, Account & sync → Share status with your agents uploads a small report to your account whenever the phone syncs or a session starts or ends: which routines are switched on, a running session's end time, home allowance minutes used and left today, and a 30-day history of allowance and focus minutes. Minute counts only; never app identities or locations. It lives in routine_status (one row per user, supabase/schema.sql) under the same row-level security as the library, and switching the setting off deletes the row. The MCP gains get_status (summary sentence plus the JSON) and render_status_chart (the same summary plus a PNG of the last 14 days). The web cards show the phone's line when a report exists. Freshness is "as of the phone's last sync"; the background meter does not upload on its own.
For a home allowance page, the user must install the compatible TestFlight build, set home while physically there, allow Always location access, choose the Distractions apps, and enable the allowance. Routine format 2 prevents older builds from silently ignoring the home requirement.
Weekdays Mon–Thu share 30 minutes across 18:00–18:30 and 19:00–20:50; Friday gets 120 minutes in 14:30–20:20; each weekend day gets 180 minutes in 06:30–20:30. Outside windows, distractions are blocked only at home. Away use is unrestricted and uncounted. The allowance resets at midnight America/Los_Angeles. Home coordinates remain in the iPhone App Group, not Supabase. One home allowance per device is supported because iOS caps monitored activities.
The native meter uses whole-minute checkpoints and a fresh activity after returning home. The final partial minute can be lost on departure, and OS geofence/threshold callbacks may be delayed. This is not second-accurate metering, and simulator tests cannot prove background enforcement on a real iPhone. A physical-device leave/return test remains required. The geofence radius is 150 m; disabling location access leaves the home restriction inactive.
The signed-in website has Copy agent connection. Each copy creates a long-lived agent token (pw_agent_…) inside an MCP HTTP config for the current account. Keep that config private: it works until revoked in Account → Agent connections, which revokes every connection at once. An account holds up to five; a sixth replaces the oldest. Only a SHA-256 hash of each token is stored, in the user's app_metadata, which only the service role can change. The endpoint is /api/mcp. It accepts an agent token or a signed-in Supabase session token. Agent tokens are checked with the service role, which bypasses row-level security, so every read and write is scoped to the verified account ID. The endpoint exposes the exact Page, Routine, and Data blocks from the visual builder through get_block_catalog, list_pages, get_page, create_page, update_page, add_block, update_block, remove_block, and delete_page. Agents cannot upload raw documents, graphs, code, or private presets. Writes use the existing library row and optimistic revision checks. No AI service is invoked.
For stdio clients run node tools/mcp-server.mjs with POCKETWORK_MCP_URL and POCKETWORK_ACCESS_TOKEN supplied by your agent client. The local website server must remain running. This is a local developer connection, not a hosted OAuth discovery service; no Codex plugin or background service was installed.