Skip to main content

Arc: The Memory Layer for Engineering Teams

Arc Logo

Website Tests PyPI Python License Documentation

Arc is the memory layer for engineering teams — it records why every change was made, predicts the blast-radius of new code before you merge, and feeds that context to agents so they can handle long-range refactors safely.

What Arc Memory Does

Arc Memory provides a complete solution for preserving and leveraging engineering knowledge:

  1. Records the why behind code changes Ingests commits, PRs, issues, and ADRs to preserve architectural intent and decision history.

  2. Models your system as a temporal knowledge graph Creates a causal graph of code entities, services, and their relationships that evolves with your codebase.

  3. Enables powerful temporal reasoning Tracks decision → implication → code-change chains to show why decisions were made and predict their impact.

  4. Analyzes across multiple repositories Builds a unified knowledge graph across multiple repositories to understand cross-repository dependencies and relationships.

  5. Enhances developer workflows Surfaces decision trails and blast-radius predictions in PR reviews and provides context to AI agents.

Quick Start

# Install Arc Memory with all dependencies
pip install arc-memory[all]

# Authenticate with GitHub
arc auth github

# Build a knowledge graph with LLM enhancement
cd /path/to/your/repo
arc build --github --llm-enhancement standard --llm-provider openai --llm-model o4-mini

Check out our Code Time Machine demo to explore file evolution, decision trails, and impact prediction, or browse other example agents and demo applications.

Core Features

Powerful CLI Tools

# Explore decision trails for specific code
arc why file path/to/file.py 42

# Ask natural language questions about your codebase
arc why query "What decision led to using SQLite instead of PostgreSQL?"

# Run the Code Time Machine demo
./demo/code_time_machine/run_demo.sh path/to/file.py

# Export knowledge graph for CI/CD integration
arc export <commit-sha> export.json --compress

SDK for Developers and Agents

Arc Memory provides a clean, Pythonic SDK for accessing and analyzing your codebase's knowledge graph:

from arc_memory.sdk import Arc

# Initialize Arc with your repository path
arc = Arc(repo_path="./")

# Ask natural language questions about your codebase
result = arc.query("What were the major changes in the last release?")
print(f"Answer: {result.answer}")

# Get file history and evolution
file_history = arc.get_file_history("arc_memory/sdk/core.py")
for entry in file_history:
    print(f"{entry.timestamp}: {entry.author} - {entry.change_type}")

# Find decision trails with rationales
decision_trail = arc.get_decision_trail("arc_memory/sdk/core.py", 42)
for entry in decision_trail:
    print(f"Decision: {entry.title}")
    print(f"Rationale: {entry.rationale}")

# Analyze potential impact of changes
impact = arc.analyze_component_impact("file:arc_memory/sdk/core.py")
for component in impact:
    print(f"Affected: {component.title} (Impact: {component.impact_score})")

Documentation

Following the Diataxis framework:

Why It Matters

  • Faster onboarding for new team members
  • Reduced knowledge loss when developers leave
  • More efficient code reviews with contextual insights
  • Safer refactoring with impact prediction
  • Better agent coordination through shared memory

Architecture

Arc Memory is built around a bi-temporal knowledge graph that captures:

  • Code Structure: Files, functions, classes, and their relationships
  • Version History: Commits, PRs, issues, and their temporal connections
  • Decision Context: ADRs, discussions, and rationales behind changes
  • Causal Relationships: How changes in one component affect others
  • Multi-Repository Support: Analyze and query across multiple repositories

This architecture enables powerful temporal reasoning and impact prediction capabilities that traditional code analysis tools cannot provide.

Multi-Repository Support

Arc Memory supports analyzing multiple repositories within a single knowledge graph:

from arc_memory.sdk import Arc

# Initialize with your primary repository
arc = Arc(repo_path="./main-repo")

# Add additional repositories
repo2_id = arc.add_repository("./service-repo", name="Service Repository")
repo3_id = arc.add_repository("./frontend-repo", name="Frontend Repository")

# List all repositories in the knowledge graph
repos = arc.list_repositories()
for repo in repos:
    print(f"{repo['name']} ({repo['id']})")

# Set active repositories for queries
arc.set_active_repositories([repo2_id, repo3_id])

# Query across specific repositories
result = arc.query("How do the frontend and service components interact?")

The SDK follows a framework-agnostic design with adapters for popular frameworks like LangChain and OpenAI, making it easy to integrate Arc Memory into your development workflows or AI applications.

Privacy and License

Telemetry is disabled by default. Arc Memory respects your privacy and will only collect anonymous usage data if you explicitly opt in.

Licensed under MIT.

Metadata

Release files for arc-memory 0.7.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arc-memory 0.7.4
File Size Uploaded
arc_memory-0.7.4.tar.gz 11.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for arc-memory 0.7.4
File Interpreter ABI Platform
arc_memory-0.7.4-py3-none-any.whl Python 3 none any Details

Total release size: 12.0 MB

Release files / arc_memory-0.7.4.tar.gz

Download URL arc_memory-0.7.4.tar.gz
Size 11.7 MB
Tags Source
SHA-256 checksum
How to use checksums
3242a7f71f0097e8a8f5bf40adbc78db402dcb8a6c6a1ec0863dc0af0f19b569
BLAKE2b-256 checksum
How to use checksums
9afd68d08ceb6f755fdfc348dfe37f3943f96540c7ac2a53039c4db636daab6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / arc_memory-0.7.4-py3-none-any.whl

Download URL arc_memory-0.7.4-py3-none-any.whl
Size 294.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c003fb87963561372a9aa9c77bbbee99c5c60a915043bbab86cad27432702ec
BLAKE2b-256 checksum
How to use checksums
26d37d8e91e89719d03120f84efc9e194e81f56d00b22d5f708166ed63dfb342
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.7.4 This release

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page