Devin Desktop (formerly Windsurf) integration for Hindsight - persistent long-term memory via MCP
Project description
hindsight-devin-desktop
Long-term memory for Devin Desktop (the editor formerly known as Windsurf / Codeium), powered by Hindsight.
hindsight-devin-desktop init wires the Hindsight MCP server into Devin Desktop's
~/.codeium/windsurf/mcp_config.json and adds an always-on recall/retain rule to
.devin/rules/hindsight.md. Devin then has recall / retain / reflect
tools and — guided by the rule — recalls relevant memory at the start of a task
and retains durable facts as it works.
Note: Cognition rebranded Windsurf to Devin Desktop (June 2026). The MCP config path still lives under
~/.codeium/windsurf/— that's Devin Desktop's on-disk data directory and is unchanged by the rebrand. The workspace rule now lives under.devin/rules/(with.windsurf/rules/kept as a legacy fallback).
How it works
Devin Desktop supports two things this integration uses:
-
MCP servers in
~/.codeium/windsurf/mcp_config.jsonundermcpServers, including remote servers viaserverUrlwith headers — so the Hindsight MCP endpoint connects directly:{ "mcpServers": { "hindsight": { "serverUrl": "https://api.hindsight.vectorize.io/mcp/my-project/", "headers": { "Authorization": "Bearer hsk_..." } } } }
-
Workspace rules in
.devin/rules/. A rule file withtrigger: always_onfrontmatter is applied to every Devin request in the workspace — that's where the recall/retain rule lives.
Install
pip install hindsight-devin-desktop
cd your-project
hindsight-devin-desktop init --api-token YOUR_HINDSIGHT_API_KEY --bank-id my-project
init merges the mcpServers entry into ~/.codeium/windsurf/mcp_config.json
(Devin Desktop's single global MCP config) and writes the rule into
./.devin/rules/hindsight.md. Reload Devin Desktop (or refresh MCP servers) and
the hindsight tools are available.
Use a Hindsight Cloud key, or a self-hosted
server with --api-url http://localhost:8888 (no token needed for an open local
server). If mcp_config.json isn't plain JSON, init prints the snippet to
paste instead of touching the file — or run hindsight-devin-desktop init --print-only
anytime.
Commands
| Command | Description |
|---|---|
hindsight-devin-desktop init |
Add the MCP server + recall/retain rule |
hindsight-devin-desktop status |
Show whether the server + rule are configured |
hindsight-devin-desktop uninstall |
Remove the server + rule |
Configuration
| Setting | Env var | Default |
|---|---|---|
| API URL | HINDSIGHT_API_URL |
https://api.hindsight.vectorize.io |
| API token | HINDSIGHT_API_TOKEN |
(none; required for Cloud) |
| Bank id | HINDSIGHT_DEVIN_DESKTOP_BANK_ID |
devin-desktop |
Development
uv sync
uv run pytest tests -v -m 'not requires_real_llm' # deterministic suite
uv run pytest tests -v -m requires_real_llm # gated MCP-endpoint check
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hindsight_devin_desktop-0.1.0.tar.gz.
File metadata
- Download URL: hindsight_devin_desktop-0.1.0.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa62d50f36fb030233a064b8ceafdf0ca4e292410927c4feec49350757cc6d23
|
|
| MD5 |
7c753afd41fb33c70082f6b110259474
|
|
| BLAKE2b-256 |
37a4dc9c5c545f58f2d08f879b31793f5fb8f77b4d0a34bbca5ef0918b3e4294
|
Provenance
The following attestation bundles were made for hindsight_devin_desktop-0.1.0.tar.gz:
Publisher:
release-integration.yml on vectorize-io/hindsight
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hindsight_devin_desktop-0.1.0.tar.gz -
Subject digest:
aa62d50f36fb030233a064b8ceafdf0ca4e292410927c4feec49350757cc6d23 - Sigstore transparency entry: 2164422411
- Sigstore integration time:
-
Permalink:
vectorize-io/hindsight@920afcce2006eb8038a257d7d6e39f1dff66e72c -
Branch / Tag:
refs/tags/integrations/devin-desktop/v0.1.0 - Owner: https://github.com/vectorize-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-integration.yml@920afcce2006eb8038a257d7d6e39f1dff66e72c -
Trigger Event:
push
-
Statement type:
File details
Details for the file hindsight_devin_desktop-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hindsight_devin_desktop-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f2677dbf8a381cf4628624f7ef019e3f181a065bb6827fea42dc7de5894a2ca
|
|
| MD5 |
c847aaf5717add02e1867e056ddeebd4
|
|
| BLAKE2b-256 |
438f9e4ac7299fa77c002506a89df5fffbfc2e5712df3e53d8e3c0b62fe80e47
|
Provenance
The following attestation bundles were made for hindsight_devin_desktop-0.1.0-py3-none-any.whl:
Publisher:
release-integration.yml on vectorize-io/hindsight
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hindsight_devin_desktop-0.1.0-py3-none-any.whl -
Subject digest:
1f2677dbf8a381cf4628624f7ef019e3f181a065bb6827fea42dc7de5894a2ca - Sigstore transparency entry: 2164422425
- Sigstore integration time:
-
Permalink:
vectorize-io/hindsight@920afcce2006eb8038a257d7d6e39f1dff66e72c -
Branch / Tag:
refs/tags/integrations/devin-desktop/v0.1.0 - Owner: https://github.com/vectorize-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-integration.yml@920afcce2006eb8038a257d7d6e39f1dff66e72c -
Trigger Event:
push
-
Statement type: