{{ message }}
feat: add optional Honcho memory backend#2673
Open
ajspig wants to merge 6 commits intoscreenpipe:mainfrom
Open
feat: add optional Honcho memory backend#2673ajspig wants to merge 6 commits intoscreenpipe:mainfrom
ajspig wants to merge 6 commits intoscreenpipe:mainfrom
Conversation
Adds screenpipe-honcho crate that periodically synthesizes screen/audio/input observations into first-person narratives and pushes them to a Honcho workspace via REST API. External agents can then query Honcho for rich user understanding. - New crate: screenpipe-honcho (client, service, session_manager, synthesizer) - Config: 6 new fields on RecordingSettings (enableHoncho, honchoApiUrl, etc.) - CLI: --enable-honcho, --honcho-api-url, --honcho-api-key, etc. - Engine: feature-gated startup (#[cfg(feature = "honcho")]) - Frontend: Settings UI section with toggle, connection status, config inputs - Default: OFF, must be explicitly enabled - Privacy: strips credentials, financial, medical, incognito content Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The original implementation had incorrect request/response shapes that
didn't match the Honcho v3 REST API (field naming, body structure),
an invalid default peer name, a bogus health check endpoint, and an
unnecessary observer peer.
- Use `id` instead of `name` in create requests, `configuration` instead of `config`
- Fix add-peers-to-session to send bare dict body per API spec
- Change default peer name from `user:default` to `user-default` (colon invalid)
- Remove health check (no /health endpoint; init() validates connectivity)
- Simplify to single peer (observer peer was unused)
- Attach peers inline at session creation time
- Use `{:#}` for full error chain in logs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove settings UI and config persistence to keep the first PR focused on the core crate + CLI flags. The UI can be added in a follow-up once the backend is validated. Removed: - honcho-section.tsx (new file, deleted) - connections-section.tsx (reverted to upstream) - use-settings.tsx (reverted to upstream) - recording.rs (reverted to upstream) This eliminates conflicts with open PRs screenpipe#2605 and screenpipe#2574 which also modify recording.rs.
- Prevent zero-interval DoS when sync_interval_mins=0 (clamp to 1) - Pass browser_url and focused fields through to synthesizer - Rewrite synthesizer with improved formatting and privacy filtering
- Drop tests from client.rs and synthesizer.rs (follow-up) - Inline session_manager.rs into service.rs (one fewer file) - Simplify synthesizer to single flat format: timestamped lines showing app | window | url, instead of adaptive micro/summary modes - Remove unused peer_chat and add_peers_to_session from client - Remove focused field from RawEvent (unused)
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.

Summary
Adds Honcho as an optional memory backend. A background service polls the local screenpipe DB, synthesizes structured activity observations (apps, windows, URLs, audio excerpts), applies privacy filters, and posts them to Honcho. External agents can then query Honcho for structured user context.
Opt-in: gated behind Cargo feature
honcho, disabled by default. No data leaves the machine unless explicitly enabled.Changes
crates/screenpipe-honcho/-- client, service, synthesizer (4 files, ~725 lines)screenpipe-engine/Cargo.tomlscreenpipe-engine/src/cli/mod.rsandsrc/bin/screenpipe-engine.rsHow to test
[honcho]sync confirmationsWithout
--enable-honcho, nothing changes.