TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证一个居于您侧边的小型代理。握持钥匙,说出需求——它会读取您的浏览器屏幕,找到控件,并点击执行。
AI 翻译
A small agent that lives in your notch. Hold a key, say what you want — it reads your screen, finds the control, and clicks it.
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A small agent that lives in your notch and does things on your screen.
Hold a key. Say what you want. It reads what you are looking at, finds the
control, and clicks it — or takes the whole task away and finishes it.
Every AI assistant right now is the same shape: a text box. You describe what you
are looking at to something that cannot see it, it describes back what you should
click, and you go and click it yourself.
Nudge is on your side of the screen. It sees what you see, and it has hands.查看完整 README ↗A small agent that lives in your notch and does things on your screen.
Hold a key. Say what you want. It reads what you are looking at, finds the control, and clicks it — or takes the whole task away and finishes it.
Download · Build from source · How it works · Report a bug
Every AI assistant right now is the same shape: a text box. You describe what you are looking at to something that cannot see it, it describes back what you should click, and you go and click it yourself.
Nudge is on your side of the screen. It sees what you see, and it has hands.
| You say | It does |
|---|---|
| "What is this error actually telling me?" | Reads the dialog in front of you and answers in plain language |
| "Where is the setting for scaling in this app?" | Finds the buried menu item and points at it, so you learn where it was |
| "Play something by Radiohead on YouTube." | Opens the browser, searches, picks a result, presses play |
| "Fill this form in with the details from that email." | Reads one window, types into another, field by field |
| "Teach me DaVinci Resolve." | Draws on your screen and walks you through it, one chapter at a time |
No window. No dock icon. No chat history to scroll — just a cat in the dead space at the top of the display.
Download the build — nudge.runmycrew.com serves
signed, notarised .dmg for Apple Silicon and .deb / AppImage for Linux. It
updates itself after that.
On first use Nudge asks for Screen Recording and Microphone. Grant both and relaunch — macOS does not hand a new grant to a process that is already running.
No API key? Sign in and turns go through our proxy. Prefer your own? Paste a Gemini or Anthropic key in Settings, or run a local model and pay nobody:
brew install ollama && ollama pull qwen3-vl:4b # then set provider = "ollama"
| Key | What happens |
|---|---|
Hold ctrl alt | Talk. Release and it answers |
| Tap the same keys | Type instead, or skip to the next step |
| Draw while you talk | Circle anything on screen — it sees the drawing |
esc | Stops it. Whatever it was in the middle of |
A ring appears over the control to click and stays there until you actually click it, then the next step loads by itself. Turn on Click for me and it does the clicking too.
Each turn is a fresh capture, because step 2's target usually lives inside a menu step 1 opened — it is in no earlier screenshot. The model is asked what to do next and answers with exactly one of 31 outcomes:
Point · Launch · Open · Type · Press · Tour · Done · Unsure
Run · Write · Read · Edit · Fetch · Search · Task · Agent · Question · …
Each exists because collapsing it into another one caused a visible bug. Unsure
is there because a model that may only point or finish will invent coordinates
when shown a screen with no matching control. Question is what makes an
unattended agent able to ask "which Sara?" instead of guessing.
Three things run underneath the loop:
core/context.rs decides room for every section of the
prompt first, then cuts each exactly once. A plain question used to ship 52,221
characters of prompt and now ships about 22,000.core/run/agent.rs drives itself with a step budget,
a visible stop, and a question it can ask you. While it runs it owns the real
cursor, which is what "do it for me" means.connections.toml only ever names one, as
keychain:<item>. Nothing is pasted into a file or a commit.core/screen/privacy.rs, mid-agent
as well as before one starts.core/counted.rs.src-tauri/src/
core/ What Nudge does. No Tauri. Unit-testable.
provider/ gemini · anthropic · ollama, behind one trait
run/ session · agent · subagent — the loops
screen/ capture · ax · click · keyboard · ink · privacy
tools/ mcp · shell · files · fetch · relevant
voice/ ear · record · transcribe · speech
context.rs the prompt budget teaching.rs tour scoring
memory.rs what it remembers threads.rs conversations
counted.rs what it reports laps.rs where time goes
app/ Wiring core to the OS. Thin by design.
ui/ · input/ · commands/ · agent.rs · tour.rs · update.rs
bin/ errand · bench · picks · truth · probe · judge · ax
tests/layering.rs Fails the build if core imports Tauri
ui/ The panel and overlay. React, Tailwind v4, Vite.
server/ FastAPI: releases, accounts, model proxy, counts.
web/ The marketing site. Next.js.
The one architectural rule: core must not know Tauri exists. That is what
lets 494 tests run without a window server, and it is checked rather than trusted —
a documented boundary decays the first time somebody wants an AppHandle inside a
provider.
make tools # one time
cp config.example.toml ~/.config/nudge/config.toml
make pin-identity ID="Apple Development: ..." # macOS only — see below
make run # build, sign, restart
make dev # hot reload
make test # 494 Rust tests
make lint # clippy -D warnings, then fmt --check
make timings # where turns have been spending their time
make bench # the accuracy number
make on its own lists every target. CLAUDE.md has the conventions,
the release steps, and the things that have bitten.
Code signing is not optional on macOS, even in development. TCC identifies an app by its signature, so an ad-hoc build gets a fresh identity every time and your Screen Recording grant silently stops applying — while the toggle still reads "on".
.signing-identitypins the certificate. See CLAUDE.md for the release steps.
Linux is X11 only. Injecting input and reading a held modifier are things Wayland deliberately forbids; on Wayland the window appears and the hotkey never fires.
The whole product rested on one question: can a model return the on-screen position of a named control accurately enough to draw a ring around it? That is measured, not assumed:
make probe GOAL="open the UV editor" # writes a PNG with the ring drawn on
make bench # scores every saved case
make timings # p50 per stage, per turn
Nearly every fix in this repository came out of one of those rather than out of reading the code. Spoken turns got roughly twice as fast when measurement showed the on-device transcriber was being abandoned after one cold-start timeout. Tour scoring promptly revealed that the sloppy boxes were mine, not the model's.
Early, and honest about it. It works, it is genuinely useful, and it will also do things confidently and wrongly. 397 commits, 10 releases.
Not built yet, deliberately:
If you want to break it, that is the most useful thing anyone can do right now. There is a Report a bug button inside the app, or open an issue — what you asked it to do and what it did instead is the good stuff.
MIT. Do what you like with it.