Repository Analysis

rohitg00/agentmemory

#1 Persistent memory for AI coding agents based on real-world benchmarks

1.4 Likely human-written View on GitHub
1.4
Adjusted Score
1.4
Raw Score
100%
Time Factor
2026-05-29
Last Push
19,890
Stars
TypeScript
Language
127,659
Lines of Code
471
Files
160
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 10LOW 150

Pattern Findings

160 matches across 7 categories. Click a row to expand file-level details.

Over-Commented Block91 hits · 91 pts
SeverityFileLineSnippet
LOWREADME.md661### Windows
LOWREADME.md1301GRAPH_EXTRACTION_ENABLED=true
LOWREADME.md1321# OPENAI_BASE_URL=https://api.openai.com # Optional: override for Azure / vLLM / LM Studio / proxies
LOWREADME.md1341# leave OFF unless you understand the Stop-hook recursion risk (#149 follow-up):
LOWREADME.md1361 # decrease to fail-fast on rate-limit holds.
LOWREADME.md1381 # memory slots — persona,
LOWREADME.md1401 # (this is what actually reaches
LOWdeploy/fly/entrypoint.sh1#!/bin/sh
LOWdeploy/railway/entrypoint.sh1#!/bin/sh
LOWdeploy/render/entrypoint.sh1#!/bin/sh
LOWdeploy/coolify/entrypoint.sh1#!/bin/sh
LOWwebsite/next-env.d.ts1/// <reference types="next" />
LOWscripts/backfill-imported-sessions.sh1#!/usr/bin/env bash
LOWREADMEs/README.de-DE.md1221# # embedding provider (further below). Set
LOWREADMEs/README.de-DE.md1241# OPENAI_API_KEY_FOR_LLM=false # Optional: set to false to skip OpenAI auto-detection
LOWREADMEs/README.de-DE.md1261 # takes precedence when set, for back-compat
LOWREADMEs/README.de-DE.md1281 # observation — expect significant
LOWREADMEs/README.de-DE.md1301 # - SessionStart may inject ~1-2K
LOWREADMEs/README.ru-RU.md1221# # embedding provider (further below). Set
LOWREADMEs/README.ru-RU.md1241# OPENAI_API_KEY_FOR_LLM=false # Optional: set to false to skip OpenAI auto-detection
LOWREADMEs/README.ru-RU.md1261 # takes precedence when set, for back-compat
LOWREADMEs/README.ru-RU.md1281 # observation — expect significant
LOWREADMEs/README.ru-RU.md1301 # - SessionStart may inject ~1-2K
LOWREADMEs/README.ja-JP.md621# 2. iii-x86_64-pc-windows-msvc.zip をダウンロード
LOWREADMEs/README.ja-JP.md1221# MINIMAX_API_KEY=...
LOWREADMEs/README.ja-JP.md1241# # chat models reject this field with 400. Set to
LOWREADMEs/README.ja-JP.md1261 # OpenAI LLM, OpenAI/Cohere/Voyage/OpenRouter
LOWREADMEs/README.ja-JP.md1281# AGENTMEMORY_AUTO_COMPRESS=false # OFF by default (#138). When on,
LOWREADMEs/README.ja-JP.md1301 # files in project_context. Fire-
LOWREADMEs/README.hi-IN.md1221# MINIMAX_API_KEY=...
LOWREADMEs/README.hi-IN.md1241# # chat models reject this field with 400. Set to
LOWREADMEs/README.hi-IN.md1261 # OpenAI LLM, OpenAI/Cohere/Voyage/OpenRouter
LOWREADMEs/README.hi-IN.md1281# AGENTMEMORY_AUTO_COMPRESS=false # OFF by default (#138). When on,
LOWREADMEs/README.hi-IN.md1301 # files in project_context. Fire-
LOWREADMEs/README.es-ES.md1201### Variables de entorno
LOWREADMEs/README.es-ES.md1221# OPENAI_API_VERSION=2024-08-01-preview # Optional: Azure api-version query param
LOWREADMEs/README.es-ES.md1241# EMBEDDING_PROVIDER=local
LOWREADMEs/README.es-ES.md1261# VECTOR_WEIGHT=0.6
LOWREADMEs/README.es-ES.md1281 # self_notes. Size-limited; agent
LOWREADMEs/README.es-ES.md1301 # on every file-touching tool call
LOWREADMEs/README.pt-BR.md1201### Variáveis de ambiente
LOWREADMEs/README.pt-BR.md1221# OPENAI_API_VERSION=2024-08-01-preview # Optional: Azure api-version query param
LOWREADMEs/README.pt-BR.md1241# EMBEDDING_PROVIDER=local
LOWREADMEs/README.pt-BR.md1261# VECTOR_WEIGHT=0.6
LOWREADMEs/README.pt-BR.md1281 # self_notes. Size-limited; agent
LOWREADMEs/README.pt-BR.md1301 # on every file-touching tool call
LOWREADMEs/README.zh-TW.md621# 2. 下載 iii-x86_64-pc-windows-msvc.zip
LOWREADMEs/README.zh-TW.md1221# # OpenAI LLM provider (here) AND the OpenAI
LOWREADMEs/README.zh-TW.md1241# # but no content.
LOWREADMEs/README.zh-TW.md1261 # OpenAI-scoped OPENAI_TIMEOUT_MS alias (above)
LOWREADMEs/README.zh-TW.md1281 # LLM provider to compress the
LOWREADMEs/README.zh-TW.md1301# AGENTMEMORY_INJECT_CONTEXT=false # OFF by default (#143). When on:
LOWREADMEs/README.fr-FR.md1221# # embedding provider (further below). Set
LOWREADMEs/README.fr-FR.md1241# OPENAI_API_KEY_FOR_LLM=false # Optional: set to false to skip OpenAI auto-detection
LOWREADMEs/README.fr-FR.md1261 # takes precedence when set, for back-compat
LOWREADMEs/README.fr-FR.md1281 # observation — expect significant
LOWREADMEs/README.fr-FR.md1301 # - SessionStart may inject ~1-2K
LOWREADMEs/README.zh-CN.md621# 2. 下载 iii-x86_64-pc-windows-msvc.zip
LOWREADMEs/README.zh-CN.md1221# # OpenAI LLM provider (here) AND the OpenAI
LOWREADMEs/README.zh-CN.md1241# # but no content.
31 more matches not shown…
Hyper-Verbose Identifiers51 hits · 53 pts
SeverityFileLineSnippet
LOWbenchmark/quality-eval.ts430async function evalBuiltinMemoryTruncated(
LOWtest/hermes-plugin.test.ts43function readAgentMemoryProviderHookMethods(): string[] {
LOWintegrations/pi/security.ts17export function plaintextBearerAuthMessage(baseUrl: string): string {
LOWintegrations/pi/security.ts21export function createPlaintextBearerAuthGuard(
LOWintegrations/hermes/__init__.py70def _preload_agentmemory_dotenv() -> None:
LOWintegrations/hermes/__init__.py117def _uses_plaintext_bearer_auth(base: str, secret: str = "") -> bool:
LOWintegrations/hermes/__init__.py124def _plaintext_bearer_auth_message(base: str) -> str:
LOWintegrations/hermes/__init__.py128def _warn_plaintext_bearer_auth(message: str) -> None:
LOWintegrations/hermes/__init__.py132def _check_plaintext_bearer_guard(
LOWintegrations/hermes/__init__.py148def _reset_plaintext_bearer_guard_for_tests() -> None:
LOWsrc/config.ts370export function isContextInjectionEnabled(): boolean {
LOWsrc/config.ts374export function getConsolidationDecayDays(): number {
LOWsrc/triggers/api.ts86function consolidationDisabledResponse(): Response {
LOWsrc/triggers/api.ts119function parseOptionalFiniteNumber(value: unknown): number | undefined | null {
LOWsrc/providers/embedding/index.ts23export function createImageEmbeddingProvider(): EmbeddingProvider | null {
LOWsrc/cli/onboarding.ts150function shouldSkipInteractiveOnboarding(): boolean {
LOWsrc/cli/onboarding.ts159function writeDefaultOnboardingPrefs(): OnboardingResult {
LOWsrc/cli/connect/codex-hooks.ts106function normalizePathForCommandMatch(value: string): string {
LOWsrc/viewer/index.html1576 function startDashboardAutoRefresh() {
LOWsrc/prompts/graph-extraction.ts19export function buildGraphExtractionPrompt(
LOWsrc/prompts/consolidation.ts41export function buildProceduralExtractionPrompt(
LOWsrc/functions/governance.ts10export function registerGovernanceFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/vision-search.ts19export function registerVisionSearchFunctions(
LOWsrc/functions/branch-aware.ts21export function registerBranchAwareFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/evict.ts82async function runRecoveredSessionConsolidation(sdk: ISdk): Promise<void> {
LOWsrc/functions/claude-bridge.ts72export function registerClaudeBridgeFunction(
LOWsrc/functions/consolidation-pipeline.ts45export function registerConsolidationPipelineFunction(
LOWsrc/functions/temporal-graph.ts152export function registerTemporalGraphFunctions(
LOWsrc/functions/image-quota-cleanup.ts13export function registerImageQuotaCleanup(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/search.ts137export async function vectorIndexAddBatchGuarded(
LOWsrc/functions/query-expansion.ts69export function registerQueryExpansionFunction(
LOWsrc/functions/retention.ts65function computeReinforcementBoost(
LOWsrc/functions/retention.ts123export function registerRetentionFunctions(
LOWsrc/functions/sentinels.ts17export function registerSentinelsFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/skill-extract.ts103export function registerSkillExtractFunctions(
LOWsrc/functions/compress-file.ts95export function registerCompressFileFunction(
LOWsrc/functions/file-index.ts22export function registerFileIndexFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/checkpoints.ts8export function registerCheckpointsFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/summarize.ts209export function registerSummarizeFunction(
LOWsrc/functions/relations.ts39export function registerRelationsFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/compress-synthetic.ts76export function buildSyntheticCompression(
LOWsrc/functions/diagnostics.ts46export function registerDiagnosticsFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/smart-search.ts19export function registerSmartSearchFunction(
LOWsrc/functions/obsidian-export.ts196export function registerObsidianExportFunction(
LOWsrc/functions/export-import.ts34export function registerExportImportFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/flow-compress.ts22export function registerFlowCompressFunction(
LOWsrc/functions/working-memory.ts34export function registerWorkingMemoryFunctions(
LOWsrc/functions/consolidate.ts65export function registerConsolidateFunction(
LOWsrc/functions/auto-forget.ts24export function registerAutoForgetFunction(sdk: ISdk, kv: StateKV): void {
LOWsrc/functions/sliding-window.ts116export function registerSlidingWindowFunction(
LOWsrc/functions/crystallize.ts18export function registerCrystallizeFunction(
Decorative Section Separators10 hits · 30 pts
SeverityFileLineSnippet
MEDIUMtest/fetch-timeout.test.ts29// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts31// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts77// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts81// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts200// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts207// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts279// ─────────────────────────────────────────────────────────────
MEDIUMtest/fetch-timeout.test.ts284// ─────────────────────────────────────────────────────────────
MEDIUMtest/openai-shared.test.ts231// ─────────────────────────────────────────────────────────────
MEDIUMtest/openai-shared.test.ts236// ─────────────────────────────────────────────────────────────
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippet
LOWtest/temporal-graph.test.ts93 <entity type="organization" name="Acme Corp">
LOWtest/temporal-graph.test.ts98 <relationship type="works_at" source="Alice" target="Acme Corp" weight="0.9" valid_from="2024-01-01" valid_to="curre
LOWtest/temporal-graph.test.ts161 name: "Acme Corp",
LOWtest/temporal-graph.test.ts185 <entity type="organization" name="Acme Corp">
LOWtest/temporal-graph.test.ts189 <relationship type="works_at" source="Alice" target="Acme Corp" weight="0.95" valid_from="2025-01-01" valid_to="curr
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWscripts/backfill-imported-sessions.sh17# Usage:
Unused Imports1 hit · 1 pts
SeverityFileLineSnippet
LOWintegrations/hermes/__init__.py10
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippet
LOWintegrations/hermes/__init__.py70