Skip to main content

Local-first memory and RAG system for Claude Code - semantic search over code, docs, and team knowledge

Project description

ragtime-cli

Local-first memory and RAG system for Claude Code. Semantic search over code, docs, and team knowledge.

Features

  • Memory Storage: Store structured knowledge with namespaces, types, and metadata
  • Semantic Search: Query memories, docs, and code with natural language
  • Code Indexing: Index functions, classes, and composables from Python, TypeScript, Vue, and Dart
  • Cross-Branch Sync: Share context with teammates before PRs merge
  • Convention Checking: Verify code follows team standards before PRs
  • Doc Generation: Generate documentation from code (stubs or AI-powered)
  • Debug Tools: Verify index integrity, inspect similarity scores
  • MCP Server: Native Claude Code integration
  • Claude Commands: Pre-built /remember, /recall, /create-pr, /generate-docs commands
  • ghp-cli Integration: Auto-context when starting issues

Installation

pip install ragtime-cli

Quick Start

# Initialize in your project
ragtime init

# Index your docs
ragtime index

# Store a memory
ragtime remember "Auth uses JWT with 15-min expiry" \
  --namespace app \
  --type architecture \
  --component auth

# Search memories
ragtime search "authentication" --namespace app

# Install Claude commands
ragtime install --workspace

# Check for updates
ragtime update --check

CLI Commands

Memory Storage

# Store a memory
ragtime remember "content" --namespace app --type architecture --component auth

# List memories
ragtime memories --namespace app --type decision

# Graduate branch memory to app
ragtime graduate <memory-id>

# Delete a memory
ragtime forget <memory-id>

Search & Indexing

# Index everything (docs + code)
ragtime index

# Index only docs
ragtime index --type docs

# Index only code (functions, classes, composables)
ragtime index --type code

# Re-index with clear (removes old entries)
ragtime index --clear

# Semantic search across all content
ragtime search "how does auth work" --limit 10

# Search only code
ragtime search "useAsyncState" --type code

# Search only docs
ragtime search "authentication" --type docs --namespace app

# Reindex memory files
ragtime reindex

# Audit docs for missing frontmatter
ragtime audit docs/
ragtime audit docs/ --fix    # Interactively add frontmatter
ragtime audit docs/ --json   # Machine-readable output

Documentation Generation

# Generate doc stubs from code
ragtime generate src/ --stubs

# Specify output location
ragtime generate src/ --stubs -o docs/api

# Python only
ragtime generate src/ --stubs -l python

# Include private methods
ragtime generate src/ --stubs --include-private

Debug & Verification

# Debug a search query (show similarity scores)
ragtime debug search "authentication"
ragtime debug search "auth" --show-vectors

# Find similar documents
ragtime debug similar docs/auth/jwt.md

# Index statistics by namespace/type
ragtime debug stats
ragtime debug stats --by-namespace
ragtime debug stats --by-type

# Verify index integrity
ragtime debug verify

Cross-Branch Sync

# Sync all teammate branch memories
ragtime sync

# Auto-prune stale synced folders
ragtime sync --auto-prune

# Manual prune
ragtime prune --dry-run
ragtime prune

Daemon (Auto-Sync)

# Start background sync daemon
ragtime daemon start --interval 5m

# Check status
ragtime daemon status

# Stop daemon
ragtime daemon stop

Claude Integration

# Install Claude commands to workspace
ragtime install --workspace

# Install globally
ragtime install --global

# List available commands
ragtime install --list

# Set up ghp-cli hooks
ragtime setup-ghp

Storage Structure

.ragtime/
├── config.yaml              # Configuration
├── CONVENTIONS.md           # Team rules (checked by /create-pr)
├── app/{component}/         # Graduated app knowledge (tracked)
│   └── {id}-{slug}.md
├── team/                    # Team conventions (tracked)
│   └── {id}-{slug}.md
├── branches/
│   ├── {branch-slug}/       # Your branch (tracked in git)
│   │   ├── context.md
│   │   └── {id}-{slug}.md
│   └── .{branch-slug}/      # Synced from teammates (gitignored, dot-prefix)
├── archive/branches/        # Archived completed branches (tracked)
└── index/                   # ChromaDB vector store (gitignored)

Configuration

.ragtime/config.yaml:

docs:
  paths: ["docs", ".ragtime"]
  patterns: ["**/*.md"]
  exclude: ["**/node_modules/**"]

code:
  paths: ["."]
  languages: ["python", "typescript", "javascript", "vue", "dart"]
  exclude: ["**/node_modules/**", "**/build/**", "**/dist/**"]

conventions:
  files: [".ragtime/CONVENTIONS.md"]
  also_search_memories: true

Code Indexing

The code indexer extracts meaningful symbols from your codebase:

Language What Gets Indexed
Python Classes, methods, functions (with docstrings)
TypeScript/JS Exported functions, classes, interfaces, types, constants
Vue Components, composable usage (useXxx calls)
Dart Classes, functions, mixins, extensions

Each symbol is indexed with:

  • content: The code snippet with signature and docstring
  • file: Full path to the source file
  • line: Line number for quick navigation
  • symbol_name: Searchable name (e.g., useAsyncState, JWTManager.validate)
  • symbol_type: function, class, method, interface, composable, etc.

Example search results:

ragtime search "useAsyncState" --type code

[1] /apps/web/components/agency/payers.vue
    Type: code | Symbol: payers:useAsyncState
    Score: 0.892
    Uses composable: useAsyncState...

Memory Format

Memories are markdown files with YAML frontmatter:

---
id: abc123
namespace: app
type: architecture
component: auth
confidence: high
status: active
added: '2025-01-31'
author: bretwardjames
---

Auth uses JWT tokens with 15-minute expiry for security.
Sessions are stored in Redis, not cookies.

Namespaces

Namespace Purpose
app How the codebase works (architecture, decisions)
team Team conventions and standards
user-{name} Individual preferences
branch-{name} Work-in-progress context

Memory Types

Type Description
architecture System design, patterns
feature How features work
decision Why we chose X over Y
convention Team standards
pattern Reusable approaches
integration External service connections
context Session handoff

Claude Commands

After ragtime install --workspace:

Command Purpose
/remember Capture knowledge mid-session
/recall Search memories
/handoff Save session context
/start Resume work on an issue
/create-pr Check conventions, graduate memories, create PR
/generate-docs AI-powered documentation generation from code
/import-docs Migrate existing docs to memories
/pr-graduate Curate branch knowledge (fallback if forgot before PR)
/audit Find duplicates/conflicts in memories

MCP Server

Add to your Claude config (.mcp.json):

{
  "mcpServers": {
    "ragtime": {
      "command": "ragtime-mcp",
      "args": ["--path", "."]
    }
  }
}

Available tools:

  • remember - Store a memory
  • search - Semantic search
  • list_memories - List with filters
  • get_memory - Get by ID
  • store_doc - Store document verbatim
  • forget - Delete memory
  • graduate - Promote branch → app
  • update_status - Change memory status

ghp-cli Integration

If you use ghp-cli:

# Register ragtime hooks
ragtime setup-ghp

This auto-creates context.md from issue details when you run ghp start.

Workflow

Starting Work

ghp start 123              # Creates branch + context.md
# or
ragtime new-branch 123     # Just the context

During Development

/remember "API uses rate limiting"   # Capture insights
/handoff                              # Save progress for later

Before PR

/create-pr
# 1. Checks code against CONVENTIONS.md
# 2. Reviews branch memories
# 3. Graduates selected memories to app/
# 4. Commits knowledge with code
# 5. Creates PR

After Merge

Graduated knowledge is already in the PR. Run ragtime prune to clean up synced folders.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ragtime_cli-0.2.5.tar.gz (52.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ragtime_cli-0.2.5-py3-none-any.whl (60.6 kB view details)

Uploaded Python 3

File details

Details for the file ragtime_cli-0.2.5.tar.gz.

File metadata

  • Download URL: ragtime_cli-0.2.5.tar.gz
  • Upload date:
  • Size: 52.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for ragtime_cli-0.2.5.tar.gz
Algorithm Hash digest
SHA256 01dd2a2048fbb26d474bfcf68cda6be32cfa7d849d3d96237aa9abb32a46a953
MD5 51e97abfd6c666450529fc171b751db2
BLAKE2b-256 9d0e184203b6358ef9b0cbf77085c1751da280386a33e66fa87a94bcda8dad53

See more details on using hashes here.

File details

Details for the file ragtime_cli-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: ragtime_cli-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 60.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for ragtime_cli-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b687e3648e3fd163015312128054becbaafd47b07c754a79ae6b1414a257c385
MD5 e2acab4e3a24b4e27213f1aa4ebf540d
BLAKE2b-256 6dcd6b5c4ffee85f871b1db4d4a10fc6cc17d1fd08bf74fc9cbd6c2e81e87e17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page