DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Menu-bar and tray app for macOS and Windows for taking notes without breaking focus. Capture selected text, screen areas and quick notes into plain Markdown, with on-device OCR and search.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Take notes without breaking focus.
focusnotes is a small native app for capturing what you're reading or thinking without leaving the app you're in. The macOS edition runs from the menu bar; select text and press a shortcut, drag over part of the screen, or jot a quick note in a floating panel. Everything lands in plain Markdown files you own.
Platforms. FocusNotes supports macOS and Windows. Windows x64 and arm64 installers and portable archives are available from Releases; see Windows support for installation steps and platform details. The feature overview and shortcut table use macOS defaults; Windows behavior, shortcuts, and installation are covered in Windows support.
Source link
to the current page when its complete HTTP(S) address is exposed by the browser's native accessibility interface.
FocusNotes reads the address bar only; it does not inspect page contents or selected text to find a URL. If the
field is being edited or does not expose a complete address, the capture still saves without a link. Supported
browsers are Safari, Chrome, and Edge on
macOS, and Chrome and Edge on Windows. Chrome and Edge must expose their English “Address and search bar” control;
Firefox is not supported. In Chrome, right-click the address bar and choose Always show full URLs to expose the
complete URL when needed (Chromium's explanation).Sessions/. Add subheadings to start new sections. Use Write outside session in a quick note,
or an outside-session capture shortcut, to save a one-off note elsewhere while the session stays active..md files that work with Obsidian or any editor. Note content,
captures and search queries never leave your Mac.| Shortcut | Action |
|---|---|
| ⌥⇧C | Capture selected text |
| ⌥⇧S | Capture an area of the screen |
| ⌃⇧C | Capture selected text outside the session; choose a note |
| ⌃⇧S | Capture an area outside the session; choose a note |
| ⌥⇧N | Write a quick note (appends to the active session) |
| ⌃⇧N | Write a quick note outside the session |
| ⌥⇧F | Search notes |
| ⌥⇧A | Start or end a session |
| ⌥⇧H | Add a subheading |
| ⌥⇧L | Open the notes folder |
In the quick note: ⌘↩ saves, ⌘K opens actions, ⌘P browses notes, and esc
closes it and keeps your draft. While a session is active, ⇧⌘N toggles Write outside session:
the first nonblank line names a new or existing note, including folder and / home paths. Browse and
Save as New Note still work. Press it again, or ⌘N on a blank editor, to return to the session.
⌃⇧N (Quick-note Outside Session in the menu) opens the quick note with Write outside session
already on; ⇧⌘N still switches it back to the session, and ⌘N on a blank editor keeps it outside.
Saving or closing resets that destination; the next quick note or normal capture uses the session again.
Outside-session capture shortcuts open Add to note… immediately, even without a session; esc saves to Inbox. For a normal capture, pressing the same shortcut again while its save toast is visible also opens the note picker. The active session stays running in both cases.
Add up to 20 global shortcuts for specific folders. On macOS, choose Folder Shortcuts… from the menu-bar icon.
On Windows, use Settings… → Folder Shortcuts, the Shortcuts step in Setup, or Folder Shortcuts → Configure Folder Shortcuts… in the tray menu.
Record a combination and choose Quick Note or Start Session. Built-in and duplicate combinations
are rejected; combinations already registered by another app show a conflict. Saved bindings can also be run
from the menu (Use Folder Shortcut on macOS, the Folder Shortcuts submenu on Windows) when their
combination is unavailable. Quick Note folders are
relative to the selected notes folder. Start Session folders are relative to Sessions/; each invocation
asks for a session name, then creates or resumes that session in the configured folder. Suggestions only
include sessions in that folder. A name is required; cancelling or submitting a blank name leaves the
current session unchanged.
A folder quick note saves in its configured folder even while another session is active. An explicit Browse destination takes precedence over the folder, and the folder takes precedence over the active session. The blank editor is titled with its folder; the typed name then picks a note inside that folder, so the footer shows Add to note for an existing note there and Save as New Note makes a numbered copy in the folder. Closing the editor keeps its folder with the draft, including across relaunches. Missing folders are recreated when saving. Shortcuts bind to paths: renaming a folder outside the app does not update its shortcut. Folder shortcut settings belong to each selected notes folder.
Requires macOS 14 Sonoma or later on Apple silicon.
Download. Get the DMG and SHA256SUMS.txt from Releases,
then verify the download. It should report OK; if not, don't open it.
shasum -a 256 -c SHA256SUMS.txt
Install. Open the DMG and drag focusnotes to Applications.
First launch. focusnotes is self-signed and not notarized (the project has no paid Apple developer account), so macOS blocks the first open. Click Done, then go to System Settings → Privacy & Security, click Open Anyway next to the focusnotes message, and confirm. On macOS 15 and later, Control-click → Open no longer bypasses this. Release builds made by CI also carry a GitHub build attestation.
Permissions. focusnotes walks you through granting these. Every release is signed with the same certificate, so grants survive updates.
| Permission | Needed for |
|---|---|
| Accessibility | Reading the selected text in other apps |
| Screen Recording | Capturing an area of the screen (may need a relaunch) |
The current status of each is under the menu-bar icon → Permissions.
Updates: choose Check for Updates… from the menu, or turn on automatic checks (at most once a day). Updates come from GitHub and are verified with an EdDSA signature before installing.
Notes are saved in ~/Documents/focusnotes:
focusnotes/
├── Inbox.md # captures made outside a session
├── Sessions/
│ └── System Design.md # one note per session
├── <Quick note name>.md # quick notes, optionally in nested folders
└── assets/ # area captures (images)
Quick-note titles can include folder paths. science/math/trigonometry saves as
science/math/trigonometry.md under the notes folder, creating missing folders.
Prefix the path with / to resolve it from your home folder: /Desktop/science/math/trigonometry
saves to ~/Desktop/science/math/trigonometry.md. If the target note already exists,
Focusnotes appends to it. Folder and filename matching ignores case. External note paths
used this way are tracked for search and file updates; Focusnotes does not scan your home folder.
Names resolve to their exact path: foo means the vault-root foo.md, even when
archive/foo.md exists. To create a separate numbered note in the same folder, choose
Save as New Note in Actions (⌥⌘↩ on macOS, Ctrl+Alt+Enter on Windows). The editor
shows Add to note when the default save will append. Browse destinations take precedence over
the typed name; the active session does too unless Write outside session is selected.
Paths into the reserved assets/ folder and note names whose final component starts with ~$ are
rejected.
An unprefixed valid slash-separated name always means a folder path, so names such as
10/18 standup resolve as paths too. For relative names, URL-shaped input and malformed
slash forms with a trailing/repeated separator or whitespace next to a slash fall back to a
flat filename. Leading-slash HOME paths keep strict validation.
If the external-note registry is damaged, unsupported, or unsafe, it is preserved and external
notes are paused with a warning. Registry-dependent note listing, indexing, and capture routing
pause until recovery; local Markdown files remain intact.
Session names use the same slash convention inside Sessions/: a valid name such as
archive/Standup creates or resumes a nested session note. Relative malformed slash forms, such
as pros / cons or TODO/, use the cleaned flat session-name matching flow instead.
Timestamps and source app/window details are stored in HTML comments. Browser captures also add a separate Source link:
# System Design
### Designing Data-Intensive Applications
<!-- capture:… at=2026-10-14T13:04:58+05:30 app="Safari" -->
[Source](<https://example.com/design>)
Replication lag is the delay between a write on the leader and its visibility on followers.
To use another folder, such as an Obsidian vault, choose Choose Notes Folder… from the menu-bar icon and select it in the system folder picker. The folder must be writable. Restart the app to use a change made from the menu. First launch offers the default notes folder or Choose Notes Folder…; a folder selected there is used immediately. Existing notes stay in their original folder and are not moved.
App state (drafts, search index, pending saves, models) lives in
~/Library/Application Support/com.zerodoxxx.focusnotes.
Each notes folder keeps its own sessions, drafts, pending saves, pins, folder shortcuts and search index;
returning to a previous folder restores that folder's state. Settings and downloaded models
are shared across folders.
Keyword search works out of the box. For meaning-based search, choose Enable Semantic Search… from the menu to download the on-device models (about 492 MB, Apple silicon only): EmbeddingGemma (Apache-2.0) from huggingface.co and ONNX Runtime (MIT) from github.com. Each file is checked against a pinned SHA-256 hash, downloads resume if interrupted, and Semantic Search → Remove Models… deletes them. See docs/semantic-search.md.
Note content, captures and search queries are processed on your device and sent nowhere. The app uses the network only to download the optional semantic models and to check for and download updates.
Quit focusnotes and delete it from Applications. Optionally remove its app state and permissions:
rm -rf "$HOME/Library/Application Support/com.zerodoxxx.focusnotes"
tccutil reset Accessibility com.zerodoxxx.focusnotes
tccutil reset ScreenCapture com.zerodoxxx.focusnotes
Your notes stay in your notes folder.
A native Windows edition (C# on .NET 10 with WPF) lives in windows/. It implements the FocusNotes
features on Windows 10 22H2 and Windows 11, for x64 and arm64. Current
releases include a Setup.exe installer and a portable ZIP for
each architecture. Authenticode signing is optional; unsigned installers may trigger Windows security warnings or
be blocked by Smart App Control. Use the Windows build instructions to build from source.
From Releases, download focusnotes-win-x64-Setup.exe for x64
(Intel/AMD) or focusnotes-win-arm64-Setup.exe for Windows on ARM, plus the same release's SHA256SUMS.txt. The
corresponding portable ZIP is also available for each architecture. In PowerShell, check the installer's SHA-256
against its entry in SHA256SUMS.txt (use the ARM64 filename if that is the installer you downloaded):
Get-FileHash .\focusnotes-win-x64-Setup.exe -Algorithm SHA256
Run the matching Setup.exe. It installs for your user under %LocalAppData% and does not require administrator
rights. On first launch, complete Setup to choose the notes folder and configure the app. Read Windows install notes for SmartScreen and Smart App Control guidance.
Windows uses Alt+Shift for the normal global shortcuts, matching Option+Shift on macOS. Outside-session captures use Ctrl+Shift on both platforms.
| Action | Windows | Mac |
|---|---|---|
| Capture selected text | Alt+Shift+Q | ⌥⇧C |
| Capture an area of the screen | Alt+Shift+G | ⌥⇧S |
| Capture selected text outside the session | Ctrl+Shift+Q | ⌃⇧C |
| Capture an area outside the session | Ctrl+Shift+G | ⌃⇧S |
| Write a quick note | Alt+Shift+W | ⌥⇧N |
| Write a quick note outside the session | Ctrl+Shift+W | ⌃⇧N |
| Search notes | Alt+Shift+F | ⌥⇧F |
| Start or end a session | Alt+Shift+A | ⌥⇧A |
| Add a subheading | Alt+Shift+H | ⌥⇧H |
| Open the notes folder | Alt+Shift+E | ⌥⇧L |
These defaults are provisional until they are tested against common apps on real devices. Rebind any of them in Settings… → Shortcuts. In the quick note, Ctrl+Enter saves, Ctrl+K opens actions, Ctrl+P browses notes, Ctrl+Shift+N toggles Write outside session while a session is active, and Esc closes it and keeps your draft. Ctrl+N on a blank editor returns to the session. Ctrl+Shift+W (Quick-note Outside Session in the tray) opens the quick note with Write outside session already on. Outside-session captures open the same note picker; Esc saves to Inbox. Both outside-session capture commands and Quick-note Outside Session are also available from the tray menu, including when their shortcuts are turned off or unavailable. After an upgrade, existing custom shortcuts take priority over new defaults. Settings shows any replacement needed for a conflict or a combination newly reserved by the editor; use Change… to choose another shortcut. Windows Setup and Settings customize the built-in shortcuts and provide folder-bound Quick Note and Start Session shortcuts.
| What | Location |
|---|---|
| Notes | Documents\focusnotes (change from Choose Notes Folder… in the tray menu, Setup…, or Settings… → General → Notes folder; applies after a restart) |
| App state (settings, drafts, search index, pending saves, models, logs) | %LocalAppData%\com.zerodoxxx.focusnotes |
| The installed app | %LocalAppData%\focusnotes-win-<arch> (per user, no administrator rights needed) |
The folder picker uses the native Windows dialog and checks that the selected folder is writable before saving. Changing folders leaves existing notes in their original location. Sessions, drafts, pending saves, pins, folder shortcuts and search indexes belong to each notes folder and are retained when you switch back. Settings and downloaded models are shared across folders.
The notes are the same plain Markdown files as on the Mac, so a vault can be shared between the two. Uninstalling removes only the installed app; your notes and app state stay.
This section covers the macOS app; Windows build commands are in CONTRIBUTING.md.
Requirements: macOS 14+, a Swift 6.4 toolchain (current Xcode or Command Line Tools), and Python 3. Semantic search needs Apple silicon.
git clone https://github.com/zerodoxxx/focusnotes.git
cd focusnotes
./scripts/run-app.sh # debug build, install to /Applications and launch
./scripts/run-app.sh release # optimised build
./scripts/build-app.sh # build only
run-app.sh deletes its build artifacts afterwards; set KEEP_BUILD=1 to keep them for faster rebuilds. It signs
with the maintainer's identity if present, otherwise ad hoc (macOS then asks for permissions again after each
rebuild). To use your own identity:
SIGN_IDENTITY="Apple Development: Your Name (TEAMID)" ./scripts/run-app.sh.
To fetch the semantic models without the in-app download, run
./scripts/fetch-models.sh "$HOME/Library/Application Support/com.zerodoxxx.focusnotes/models" and restart the app.
swift build # build every target
swift run CoreChecks # storage, index and Markdown checks
swift run OverlayGallery --check # UI behaviour checks for the panels
swift run OverlayGallery # render UI snapshots to build/gallery/
| Target | What it holds |
|---|---|
App | The menu-bar app: shortcuts, capture flow, sessions, menu |
Core | Headless logic: the Markdown vault, journaling, the SQLite FTS5 search index |
CaptureKit | Global hotkeys, text selection and screen-area capture |
OverlayKit | Panels: quick note, search, toasts, capture input |
EmbedKit / EmbedHelper | The on-device embedding engine for semantic search |
OverlayGallery | UI snapshots and behaviour checks for OverlayKit |
More detail: reference, quick-note UI, demo, manual tests, releasing, release checklist, changelog.
Contributions are welcome; see CONTRIBUTING.md. Report vulnerabilities as described in SECURITY.md.
Project-owned files are licensed under the MIT License. Third-party code and downloaded models keep their own terms; see THIRD_PARTY_NOTICES.md.