Skip to content
gowtham0992

gowtham0992/link

Local, source-backed memory for LLM agents.

Local personal memory for LLM agents

167 132 since joining 20PythonPush 3d agoListed 3mo agoMIT

gowtham0992.github.io/link/

knowledge-basellmlocal-memorymarkdownmemoryobsidianpersonal-wiki
  • Python97.5%
  • Shell2.5%
View on GitHub

Report a problem

2 Reviews

1146345502114634550228d ago
TypeScriptPythonShell

Link provides local, cross-agent memory using readable Markdown rather than an opaque hosted profile. Memories can be searched, diffed, backed up, and retained even if the tool disappears. Review-gated writes are an especially strong design decision: agents propose memories, but users approve them before they become facts. A shared wiki can serve Codex, Claude, Cursor, Copilot, and other clients through a CLI, MCP server, skills, or a local viewer, with source-backed retrieval and explicit archive and forget operations.

The next challenge is operational clarity at scale. Documentation should explain concurrent writes, merge conflicts, indexing latency, backups, repository moves, and sensitive-data handling in a large multi-project wiki. An adversarial suite for prompt injection inside captured documents and guidance for encrypted storage would strengthen the security story. The UI could also highlight stale or contradictory memories. Link is best for developers and knowledge workers who use several local agents and want portable, auditable memory, especially those comfortable maintaining a local knowledge base.

Link Repository Review

Link is a thoughtful, well-scoped project with a clear premise: agents need durable, inspectable memory that remains local, source-backed, and easy to audit. The product idea, CLI behavior, web UI, MCP integration, and documentation all point in the same direction, which makes the repo feel deliberate rather than experimental.

What Works Well

The README is strong. It explains the problem quickly, gives a clear demo path, and frames Link around practical agent workflows instead of abstract knowledge management. I ran the advertised demo/value loop locally:

  • python link.py demo
  • python link.py query "why does Link help agents?" link-demo --budget small
  • python link.py brief "working on agent memory" link-demo
  • python link.py benchmark "agent memory" link-demo
  • python link.py status --validate link-demo

That flow passed. The generated demo wiki was usable, query returned a compact context packet, brief surfaced relevant memory, benchmark reported an interactive result, and validation passed with zero errors or warnings.

The test suite is also a major strength. It covers capture, backup, ingest, memory, query, validation, web behavior, MCP contracts, release hygiene, and demo snapshots. For a tool centered on trusted local memory, that level of coverage matters.

Constructive Critique

The main issue I found is Windows portability. The full test suite ran 421 tests, with 12 failures. The failures are clustered and fixable rather than broad.

Most failures come from verify-mcp path handling in link.py. User-provided Python commands such as /tmp/python are passed through Path(...).expanduser(), which changes them to Windows-style paths like \tmp\python. That corrupts generated MCP config and repair commands. Command strings should generally be preserved as commands, not normalized as platform filesystem paths.

A second issue is malformed path handling in mcp_package/link_core/web_http.py. safe_resolve() does not explicitly reject embedded NUL characters. On Windows, Path("bad\0path").resolve() can return a path instead of raising, which means malformed paths can pass deeper into static file handling. Adding an explicit NUL check would make this safer and more portable.

There is also a smaller release-hygiene issue: scripts/check_release_hygiene.py computes POSIX-style paths but formats diagnostics with the original Path, producing backslashes on Windows. Using the already-computed POSIX path would make test and CI output stable across platforms.

Overall Assessment

Link is in good shape. The core concept is coherent, the demo works, validation passes, and the project shows real care around local-first behavior, auditability, security, and agent-safe context. I would prioritize tightening cross-platform path handling before expanding features further.

Once those Windows portability issues are addressed, the project should have a much cleaner “works from source” story across environments.

gowtham0992
@gowtham09923mo ago

Thanks for the review Jay. Windows portability will be addressed soon. Will keep this thread updated.

gowtham0992
@gowtham09923mo ago

Thank you for the careful review. This was very useful. I fixed the Windows portability issues you called out before cutting the next release: - `verify-mcp` now preserves user-provided Python commands instead of normalizing them as filesystem paths. - `safe_resolve()` now rejects embedded NUL characters before path resolution. - Release hygiene diagnostics now use stable POSIX-style paths across platforms. - Added Windows CI coverage for the source workflow and portability tests. The demo/value loop, MCP verification path, and release hygiene checks are now covered in CI across the main supported Python versions, with a dedicated Windows smoke job as well. Also shipped these fixes in Link v1.2.0 along with Homebrew install support, a local `/health` page, `link operations` for interrupted-write inspection, bounded log rotation, and stronger CLI/MCP/HTTP/large-wiki validation. Really appreciate the review. It helped tighten the works from source story before the release.