DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Mumble at your phone all day. Open models sort it out overnight.
Live: https://mumble-azure.vercel.app
Record rambling voice memos whenever something pops into your head. At 3 AM, a free GitHub Actions runner wakes up, transcribes them with Whisper, and has Gemma turn them into to-dos, calendar events and notes. In the morning you open one screen and tap Done, Keep, Add to calendar or Dismiss (each with Undo). Until then you can play a memo back to check it saved; kept notes and search live in Remember.
It costs nothing to run.
A demo week of everyday memos (voiced with macOS say): 9 memos, 70 seconds of
talking, 220 words. The nap turned them into 16 to-dos, events and notes, and
Morning opened with:
10 min saved. Last night: 9 memos, 1 min of mumbling instead of 11 min of typing and sorting.
Mumble counts typing at 40 words a minute, plus about 20 seconds to file each item into the right list with the right date.
On Sundays, Ultramarine reads the whole week. In the demo week it noticed "call the dentist" said on three separate mornings, and never done. Every claim cites the items it's based on. That review cost $0.0004.
gemma4:e2b-it-qat) for structure and embeddinggemma for memory, all served by Ollama.PAPERINSTRUMENTS_API_KEY, no review, and nothing leaves.Phone PWA ──▶ Vercel (free static site) ◀──▶ Auth0 (sign-in, free)
│
└─ /api ──▶ Vercel Function (Python, free) ──▶ Postgres + pgvector (Tiger Data, free)
▲
3 AM cron ──▶ GitHub Actions (free CPU runner): Ollama + Gemma + Whisper
| Piece | Where | Cost |
|---|---|---|
Phone app (web/) | Vercel static files | free (Hobby) |
API (api/index.py → mumble/api.py) | Vercel Function | free (Hobby) |
| 3 AM alarm | GitHub Actions schedule | free |
Night shift (mumble/nap.py) | GitHub Actions, public repo | free |
| Database | Tiger Data (Postgres + pgvector) | free tier |
| Sign-in | Auth0 | free plan |
web/ the phone app (PWA): plain HTML, CSS and JS, no build step
api/index.py Vercel's entrypoint; hands each /api request to mumble/api.py
mumble/
core.py the API's logic and quotas, shared by the cloud and the local server
api.py the cloud API (only needs psycopg and PyJWT)
auth.py checks Auth0 access tokens
main.py the local dev server (FastAPI)
nap.py the night shift: Whisper, then Gemma, then embeddings
transcribe.py / structure.py speech to text / text to to-dos, events, notes
review.py the Sunday review by Ultramarine
db.py, config.py
scripts/ demo_week.py seeds a week of spoken memos; claim.py adopts pre-sign-in data
tests/
.github/workflows/nap.yml the 3 AM schedule
vercel.json hosting: static web/, /api rewrite, security headers
Needs uv, Ollama, ffmpeg and Docker.
ollama pull gemma4:e2b-it-qat && ollama pull embeddinggemma
docker compose up -d # local Postgres + pgvector
cp .env.example .env
uv sync --all-groups # the API alone needs psycopg + PyJWT; "nap" has the models
MUMBLE_DEV=1 uv run uvicorn mumble.main:app --reload
Open http://localhost:8000, record something, then tap Can't wait? Nap now
(or run uv run python -m mumble.nap). MUMBLE_DEV=1 signs everything from this
machine in as one local account; set the AUTH0_* variables instead to sign in for real.
The microphone only works on localhost or over HTTPS. Locally, search also
matches by meaning (the query is embedded with Ollama); the serverless API
searches by keyword.
DATABASE_URL='postgres://...' uv run python -c "from mumble import db; db.init()"https://<your-app>/api, RS256, token lifetime 3600 s, offline access on). Put the domain,
client id and identifier in web/config.js.DATABASE_URL under Settings → Secrets and variables → Actions.vercel.json already says what to do: serve web/, run api/index.py for /api/*.
Add DATABASE_URL, AUTH0_DOMAIN, AUTH0_AUDIENCE, AUTH0_CLIENT_ID and
MUMBLE_ICS_SECRET (32+ random characters, signs calendar links), then deploy.
Optional: MUMBLE_MAX_ACCOUNTS (default 50), MUMBLE_ALLOWED_EMAILS (invite-only).To give one account more room: UPDATE accounts SET quota = '{"memos_per_day": 50}' WHERE email = '...'.
To switch one off: UPDATE accounts SET disabled = true WHERE email = '...'.
uv run pytest
MIT