Cognee desktop: share-from-anywhere, quick capture, voice notes, git memory hook - #328
Merged
Vasilije1990 merged 36 commits intoAug 31, 2026
Merged
Conversation
Four ways to get a thought into memory without opening the app:
- POST /capture — writes a stamped markdown note into the capture
folder and indexes it like any document. All capture paths funnel
through this one endpoint.
- ⌥⇧Space quick-capture panel — type one line, hit return, keep
working. Second Carbon hotkey (GlobalHotKey now takes an id).
- scripts/cognee-send — stdlib-only CLI: text captures, file paths
index, --to shares to a teammate. Plus an Automator Quick Action
installer ("Send to cognee" from any app's selection).
- scripts/install_git_memory_hook.sh — post-commit hook that sends
each commit message to memory in the background, failing silently
so it never slows a commit.
Voice notes: .mp3/.m4a/.wav/.aac join the default indexable
extensions — cognee's loaders transcribe audio at index time.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Each GlobalHotKey installed its own Carbon event handler, but every handler receives every kEventHotKeyPressed event. With two hotkeys registered, pressing either fired the last-installed handler (quick capture), which consumed the event — so ⌥Space opened the capture bar instead of search. Read the pressed EventHotKeyID from the event, act only on our own ID, and pass foreign events along the handler chain with eventNotHandledErr. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The ⌥⇧Space bar now consults GET /whisper (debounced 500ms, notes of 12+ chars): if memory already holds something close, a quiet "memory knows: …" line appears under the field; with experiments on, a conflicting fact shows as an orange warning instead — catch the contradiction before saving it, not after. Panel canvas grows to fit the whisper row without window resizing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vasilije1990
marked this pull request as draft
August 6, 2026 14:30
Local cognee was a second-class citizen: the adapter searched only its own dataset, so connector datasets (github-<repo>), answer attribution, remember, and the graph view existed only against a cloud tenant. LocalCogneeAdapter now matches HttpCogneeAdapter's contract: - scope-all search spans every local dataset minus exclusions. A merged local search returns flat payloads with no dataset envelopes, so scope-all runs one search per dataset — the same thing the server does for an explicit list — and attribution means the same thing in both modes (the shared _attributed_answer helper is now literally the same code path). - remember() lands notes with a node_set and cognifies in the background, so inbox ingest and feedback work locally. - make_adapter wires local mode with the same search scope and inbox exclusions as cloud; /graph renders cognee's own local visualization. Verified live against in-process cognee 1.4: the mock GitHub repo in its own dataset answers alongside the main dataset, with "your files + github" attribution, and /graph serves HTML. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
These were written to a stray nested path by a relative-cd slip and missed the previous commit: settings/build gradle files, manifest, and the assets/answer.txt offline copy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vasilije1990
marked this pull request as ready for review
August 31, 2026 12:52
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds four low-friction ways to get knowledge into cognee memory, all funneling through one new backend endpoint. Builds on the desktop-app base branch (
Vasilije1990/spotlight— branch name is a historical codename; see #330).What's in here
POST /capture(backend)One endpoint for every capture path: writes a timestamped markdown note (title, source attribution, body) into
<data_dir>/capture/and kicks off incremental indexing. The note becomes searchable like any document.⌥⇧Space quick capture (app)
A small floating panel — type a thought, hit ↩, keep working. Registered as a second Carbon hotkey (
GlobalHotKeynow takes anidparameter so multiple hotkeys coexist). Esc or focus loss dismisses.Share from anywhere
scripts/cognee-send— stdlib-only CLI: bare text captures a note, file paths trigger indexing,--to <user>shares via the handover flow. RespectsCOGNEE_DESKTOP_URL(legacySPOTLIGHT_URLhonored).scripts/install_share_quick_action.sh— installs a macOS Quick Action ("Send to cognee") so any app's text selection can be captured via the Services menu.Git as memory
scripts/install_git_memory_hook.sh— adds a post-commit hook that sends each commit message to memory, backgrounded and failing silently so it never slows a commit.Voice notes
.mp3/.m4a/.wav/.aacadded to the default indexable extensions — cognee's loaders transcribe audio at index time, so a voice memo dropped in a watched folder becomes searchable memory.Testing
uv run pytest), including two new/capturetests (note written + indexed + findable; empty text rejected).ruff format+ruff checkclean.swift build,make_app.sh).curl /capture,cognee-sendtext + file paths, captured notes findable by search.🤖 Generated with Claude Code