DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Free, open-source time tracking and invoicing for freelancers, with an MCP server for any AI assistant.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗The free, open-source time tracker your AI assistant can use. Connect Claude, ChatGPT, Cursor or any MCP assistant and say "log 3 hours on Acme, then make this week's timesheet for sign-off". Or log your day in seconds yourself: type 1.5, 1:30 or 90m, press Enter, done.
Live: https://usehourly.app · Free to use, no paywall, no ads.
https://github.com/Zontak-LLC/usehourly/raw/main/public/landing/assistant-demo.mp4
UseHourly runs a remote Model Context Protocol server at https://usehourly.app/api/mcp (Streamable HTTP). It has 32 tools for projects, clients, time entries, timers, timesheets, invoices and reports; each one runs as you, so it only sees your own data. Create a token on Account > AI assistants (read-only or read and write, with an expiry), then:
claude mcp add --transport http usehourly https://usehourly.app/api/mcp --header "Authorization: Bearer <your token>"
That example is for Claude Code. Other clients just need the URL and an Authorization: Bearer <token> header in their MCP settings.
Cursor (~/.cursor/mcp.json):
{ "mcpServers": { "usehourly": { "url": "https://usehourly.app/api/mcp", "headers": { "Authorization": "Bearer <your token>" } } } }
VS Code (.vscode/mcp.json):
{ "servers": { "usehourly": { "type": "http", "url": "https://usehourly.app/api/mcp", "headers": { "Authorization": "Bearer <your token>" } } } }
For clients that can only run local (stdio) servers, such as Claude Desktop, there is a small bridge published on npm (usehourly-mcp): set the command to npx with args ["-y", "usehourly-mcp"] and USEHOURLY_API_TOKEN to your token.
Then ask: "Log 2 hours on the Acme website for yesterday" or "Make an invoice for Acme for September."
Next.js 16 (App Router) · React 19 · Tailwind CSS v4 · shadcn/ui · NextAuth v5 (credentials) · tRPC v11 · Prisma 7 with Cloudflare D1 · Vitest · Biome · deployed to Cloudflare Workers with OpenNext.
You need Node 22+.
npm install # also runs `prisma generate`
cp wrangler.example.jsonc wrangler.jsonc # then set account_id and database_id (see Deploy)
# .env.local and .dev.vars (keep the two in sync):
# AUTH_SECRET=<a long random string, e.g. `openssl rand -base64 32`>
# AUTH_URL=http://localhost:3028
npm run d1:migrate:local # create the local D1 database
npm run dev # http://localhost:3028
Register an account on the sign-up page and you are in.
npm test # scenario tests (Vitest)
npx biome check # lint and format
npx tsc --noEmit # type check
It runs on Cloudflare Workers with a D1 database:
cp wrangler.example.jsonc wrangler.jsonc and fill in your Cloudflare account id and a D1 database
(npx wrangler d1 create usehourly-db). wrangler.jsonc is git-ignored, so your ids stay out of the repo..env.production.local: NEXT_PUBLIC_APP_URL=https://app.example.com
(it is baked into the build) and set the same value as AUTH_URL in wrangler.jsonc.npm run d1:migrate:remotenpx wrangler secret put AUTH_SECRETnpm run deployPassword reset and email confirmation need an email service. UseHourly sends through Resend: verify your sending domain there, then set two values on the Worker:
npx wrangler secret put RESEND_API_KEY
npx wrangler secret put EMAIL_FROM # for example: UseHourly <[email protected]>
Without them the app works as before, and the forgot-password page says email isn't set up.
.circleci/config.yml runs the checks on every push and, on main, applies the D1 migrations and
deploys. The deploy token is a secret, so keep it out of the project settings: create a context
named usehourly-production (Organization Settings > Contexts), add an expression restriction
pipeline.git.branch == "main", and put the token in it. Only the deploy job on main can read it.
| Context variable | Value |
|---|---|
CLOUDFLARE_API_TOKEN | a token with Workers Scripts: Edit and D1: Edit |
In the CircleCI project settings add these environment variables:
| Variable | Value |
|---|---|
CLOUDFLARE_ACCOUNT_ID | your Cloudflare account id |
D1_DATABASE_ID | the id of your D1 database |
APP_URL | your public address, for example https://app.example.com |
Optional: WORKER_NAME, D1_DATABASE_NAME, CUSTOM_DOMAIN. AUTH_SECRET stays a Worker secret
(npx wrangler secret put AUTH_SECRET, once); CI never sees it. scripts/ci-wrangler-config.mjs
writes wrangler.jsonc from these variables, so no account ids live in the repository.
UseHourly is free. If it saves you time you can sponsor it on GitHub.
Thank you to everyone who helps keep UseHourly free:
Be the first: sponsor UseHourly on GitHub.
Built on the excellent next-shadcn-admin-dashboard template by Mohammed Arham Khan.
Released under the MIT License. The code is open; the name "UseHourly" and its logo are not part of the license.