Conversation
Pi: five composable skills (read-working-memory, search-memory, distill-memory, save-thread, status) as an npm package for Pi's Agent Skills Standard. Install via `pi install npm:nowledge-mem-pi`. Hermes: MCP-based integration with behavioral guidance. Users add the Nowledge Mem MCP server to ~/.hermes/config.yaml for full tool access. Includes AGENTS.md template for project-level guidance. Updated: integrations.json registry, community README table, check-integration detection table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…mes integrations Remove non-existent CLI flags from Pi search-memory skill, fix relative URLs to absolute for GitHub compatibility, add missing Risks field to handoff template, remove phantom MCP tools from Hermes README, and add Update section for consistency with other integrations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…abilities Replace localhost with 127.0.0.1 in all Hermes MCP config examples. Fix relative /docs/integrations URL to absolute for GitHub compatibility. Set graphExploration to true (memory_neighbors and memory_evolves_chain are documented). Update threadSave method to mcp-tool since thread_persist is available. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
bugbot run |
📝 WalkthroughWalkthroughThis PR adds two new integrations to the Nowledge Mem ecosystem: Pi Package and Hermes Agent. It includes configuration entries in integrations.json, updates to the main README, and comprehensive documentation covering installation, behavioral guidance, and operational skills for both integrations. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
nowledge-mem-pi-package/skills/distill-memory/SKILL.md (1)
61-69: Add search command example to "Add vs Update" workflow.The section advises searching first to avoid duplicates but doesn't show the search command. Including a complete example would make the workflow more actionable.
Based on learnings: For remote Nowledge Mem instances, store credentials in `~/.nowledge-mem/config.json`; use `NMEM_API_URL` and `NMEM_API_KEY` environment variables only for temporary overrides.💡 Suggested enhancement
## Add vs Update -Search first to avoid duplicates. If a memory already captures the same concept and the new information refines it, update instead of creating a new entry: +Search first to avoid duplicates: + +```bash +nmem --json m search "the concept you're about to save" +``` + +If a memory already captures the same concept and the new information refines it, update instead of creating a new entry: ```bash nmem --json m update <memory_id> -c "updated content"</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@nowledge-mem-pi-package/skills/distill-memory/SKILL.mdaround lines 61 - 69,
Add an explicit search example to the "Add vs Update" section so users see the
recommended command before updating or adding; insert a line demonstrating the
search command (nmem --json m search "the concept you're about to save")
immediately before the paragraph that begins "If a memory already captures the
same concept..." in the "Add vs Update" block of SKILL.md so the workflow shows
search, then update (nmem --json m update <memory_id> -c "updated content") if
needed.</details> </blockquote></details> <details> <summary>nowledge-mem-pi-package/README.md (1)</summary><blockquote> `75-75`: **Clarify env vars as temporary overrides (not equal primary config).** Line 75 currently presents environment variables as a peer default path. Please prefer config-file-first wording and frame env vars as temporary shell-level overrides (and mirror this wording in `nowledge-mem-pi-package/AGENTS.md` Line 73). <details> <summary>Suggested wording</summary> ```diff -**Remote setup:** Create `~/.nowledge-mem/config.json` with `{"apiUrl": "...", "apiKey": "..."}`, or set `NMEM_API_URL` and `NMEM_API_KEY` environment variables. +**Remote setup:** Create `~/.nowledge-mem/config.json` with `{"apiUrl": "...", "apiKey": "..."}`. Use `NMEM_API_URL` and `NMEM_API_KEY` only for temporary shell-level overrides.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@nowledge-mem-pi-package/README.md` at line 75, Update the README and AGENTS.md text to prefer the config-file-first wording: state that remote Nowledge Mem credentials should be stored in ~/.nowledge-mem/config.json and that NMEM_API_URL and NMEM_API_KEY are supported only as temporary shell-level overrides (not as equal alternatives); replace the existing line that presents env vars as a peer default with this config-first phrasing in README and mirror the same change in AGENTS.md.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@nowledge-mem-pi-package/README.md`:
- Around line 53-55: The fenced code block containing the line "> check my
Nowledge Mem status" needs a language tag to satisfy markdownlint MD040; update
the opening triple-backtick for that block to include a language (e.g., use
"text") so the snippet becomes ```text and the closing triple-backticks remain
unchanged, locating the block by the literal line text "> check my Nowledge Mem
status".
In `@nowledge-mem-pi-package/skills/save-thread/SKILL.md`:
- Around line 31-38: In SKILL.md update the fenced code block at the template
(the triple-backtick block containing "Goal: ... Next: ...") to include a
language identifier (for example change ``` to ```text) so markdown linters and
renderers treat it as plain text; locate the block in SKILL.md and add the
chosen language tag to the opening fence.
---
Nitpick comments:
In `@nowledge-mem-pi-package/README.md`:
- Line 75: Update the README and AGENTS.md text to prefer the config-file-first
wording: state that remote Nowledge Mem credentials should be stored in
~/.nowledge-mem/config.json and that NMEM_API_URL and NMEM_API_KEY are supported
only as temporary shell-level overrides (not as equal alternatives); replace the
existing line that presents env vars as a peer default with this config-first
phrasing in README and mirror the same change in AGENTS.md.
In `@nowledge-mem-pi-package/skills/distill-memory/SKILL.md`:
- Around line 61-69: Add an explicit search example to the "Add vs Update"
section so users see the recommended command before updating or adding; insert a
line demonstrating the search command (nmem --json m search "the concept you're
about to save") immediately before the paragraph that begins "If a memory
already captures the same concept..." in the "Add vs Update" block of SKILL.md
so the workflow shows search, then update (nmem --json m update <memory_id> -c
"updated content") if needed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 901561fb-cf03-4f8c-b456-78bd61c32523
📒 Files selected for processing (15)
README.mdintegrations.jsonnowledge-mem-hermes/AGENTS.mdnowledge-mem-hermes/CHANGELOG.mdnowledge-mem-hermes/README.mdnowledge-mem-npx-skills/skills/check-integration/SKILL.mdnowledge-mem-pi-package/AGENTS.mdnowledge-mem-pi-package/CHANGELOG.mdnowledge-mem-pi-package/README.mdnowledge-mem-pi-package/package.jsonnowledge-mem-pi-package/skills/distill-memory/SKILL.mdnowledge-mem-pi-package/skills/read-working-memory/SKILL.mdnowledge-mem-pi-package/skills/save-thread/SKILL.mdnowledge-mem-pi-package/skills/search-memory/SKILL.mdnowledge-mem-pi-package/skills/status/SKILL.md
| ``` | ||
| > check my Nowledge Mem status | ||
| ``` |
There was a problem hiding this comment.
Add a language tag to the fenced block at Line 53.
This currently triggers markdownlint MD040.
Suggested fix
-```
+```text
> check my Nowledge Mem status</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 53-53: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@nowledge-mem-pi-package/README.md` around lines 53 - 55, The fenced code
block containing the line "> check my Nowledge Mem status" needs a language tag
to satisfy markdownlint MD040; update the opening triple-backtick for that block
to include a language (e.g., use "text") so the snippet becomes ```text and the
closing triple-backticks remain unchanged, locating the block by the literal
line text "> check my Nowledge Mem status".
| ``` | ||
| Goal: What the session set out to accomplish | ||
| Decisions: Key choices made and their rationale | ||
| Files: Important files created or modified | ||
| Outcome: What was achieved | ||
| Risks: Known risks, open questions, or things that could break | ||
| Next: Concrete steps for the next session | ||
| ``` |
There was a problem hiding this comment.
Add language identifier to fenced code block.
The content format template is missing a language identifier. While this is a template rather than executable code, markdown linters require language tags on fenced code blocks for proper rendering and accessibility.
📝 Proposed fix
-```
+```text
Goal: What the session set out to accomplish
Decisions: Key choices made and their rationale
Files: Important files created or modified
Outcome: What was achieved
Risks: Known risks, open questions, or things that could break
Next: Concrete steps for the next session</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>
[warning] 31-31: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @nowledge-mem-pi-package/skills/save-thread/SKILL.md around lines 31 - 38, In
SKILL.md update the fenced code block at the template (the triple-backtick block
containing "Goal: ... Next: ...") to include a language identifier (for example
change totext) so markdown linters and renderers treat it as plain text;
locate the block in SKILL.md and add the chosen language tag to the opening
fence.
</details>
<!-- fingerprinting:phantom:triton:puma:c840c290-9259-47ed-af69-c793d6973600 -->
<!-- This is an auto-generated comment by CodeRabbit -->
Note
Low Risk
Low risk: changes are limited to adding new integration metadata and documentation/skill guidance, with no modifications to core runtime or server logic.
Overview
Adds two new integrations to the community registry and docs: a
Piskills package (CLI-drivennmemskills including Working Memory, search, distill, status, and handoff-stylesave-thread) and aHermes Agentconnector (MCP-based access to memory + thread tools).Updates the canonical
integrations.jsonregistry plus surfaced discovery docs (README.mdand thecheck-integrationskill table) so users can detect/install these integrations and follow the newnowledge-mem-pi-packageandnowledge-mem-hermessetup/guidance content.Written by Cursor Bugbot for commit 14511b1. This will update automatically on new commits. Configure here.
Summary by CodeRabbit
New Features
Documentation