Skip to main content
project-bedrock cover

project-bedrock: A project cockpit for your AI agents.

Every session starts with context.

Every important decision leaves a trail.

Every session leaves the project smarter.

robotaitai

PyPI Claude Code Cursor Codex License: MIT

project-bedrock demo

AI can write code fast.

What it does not do well by default is leave behind clear, shared project understanding.

Decisions disappear into chat history.
Architecture gets rediscovered.
New sessions start from zero.
And the next developer, human or AI, has to figure out again what changed, where, and why.

Project Bedrock turns your repo into a project cockpit for AI agents: what we know, what matters now, and what to load next.

It works like the operating discipline of a strong team lead:

  • every session starts with context
  • every important change leaves a trail
  • stable knowledge gets written down where the next developer can find it
  • the project becomes easier to understand over time, not harder

With one command, your project gets:

  • PROJECT-SHAPED MEMORY for architecture, decisions, conventions, and domain context
  • A SMALL WORK LAYER for current focus, open loops, and recommended next actions
  • PROJECT-LOCAL integration for Claude Code, Cursor, and Codex
  • lightweight git-friendly markdown that LIVES WITH THE REPO
  • HTML, graph, and Obsidian-ready VIEWS for human inspection

Under the hood, it is just markdown files and a CLI.
No database. No server. No hosted backend. No black box.

The result: your AI developers stop behaving like disconnected sessions, and start behaving more like a team.

📦 Install

Option A — let your agent do it (no pip knowledge needed):

Paste this into Claude Code, Cursor, or any capable agent:

Install the `project-bedrock` CLI on this machine so `bedrock --version` works. Handle Python and pipx installation if missing. Fix any errors along the way. Don't stop until it's working.

The agent detects your OS, installs Python + pipx if needed, installs the package, and verifies it. Works on macOS, Linux, and Windows.

Option B — one-liner (Mac / Linux):

curl -fsSL https://raw.githubusercontent.com/robotaitai/project-bedrock/main/install.sh | bash

Auto-detects uvpipxpip in that order.

Option C — pick your tool:

uv tool install project-bedrock   # fastest, isolated (recommended)
pipx install project-bedrock      # isolated
pip install project-bedrock       # classic

PyPI: project-bedrock  ·  CLI: bedrock  ·  alias: agent-knowledge (deprecated)


🚀 Quick Start

1. Initialize the project (run once in your project folder):

cd your-project
bedrock init

2. Onboard your agent — paste this into chat:

Read AGENTS.md and ./bedrock/STATUS.md, then onboard this project.

That's it. The agent writes stable knowledge into Memory/, current priorities into Work/, and every future session starts with better context automatically.

What init does in one shot
Step What happens
1 Creates ./bedrock/ as a real directory inside the repo (git-tracked)
2 Registers the project in ~/agent-os/projects/<slug>/ so every project shows up in one place -- open it in Obsidian for a unified cross-project vault
3 Adds noisy generated subfolders (Evidence/raw/, Views/site/, ...) to .gitignore automatically
4 Installs project-local integration for Claude Code and Cursor
5 Detects Codex and installs its bridge files if present
6 Bootstraps the project cockpit (Memory/, Work/, Views/) and marks onboarding as pending
7 Imports repo history into Evidence/ and backfills lightweight history from git

💾 Storage Modes

By default, knowledge lives inside the repo (git-tracked). Curated knowledge is committed normally; noisy subfolders are gitignored.

# Default: in-repo (recommended)
bedrock init

# External: knowledge outside the repo (not committed)
bedrock init --external

# Convert external -> in-repo later
bedrock migrate-to-local

🧠 How It Works

Think of the vault as your team's shared project cockpit. The goal is not more documentation for agents to blindly read. The goal is less context, loaded better.

Project Cockpit

Folder What goes here Canon?
📘 Memory/ What the project knows -- stable, durable, project-shaped knowledge Yes
🎯 Work/ What matters now -- current focus, next actions, open questions, risks Yes
👁️ Views/ Human inspection views -- generated site and graph output No
📅 History/ Legacy diary layer -- still supported Yes
📎 Evidence/ Raw imports: docs, ADRs, PRs, screenshots -- captured context No
📊 Outputs/ Legacy generated artifacts -- still supported No

The rule: stable facts go into Memory/, current priorities go into Work/, and generated views stay in Views/. Imported or generated material is never canon by itself.

Memory Is Project-Shaped

Bedrock does not force every repo into the same documentation template.

  • A robotics repo may organize Memory around perception/, navigation/, localization/, and safety/
  • A SaaS repo may organize Memory around frontend/, backend/, auth/, billing/, and data/
  • Bedrock itself may organize Memory around product/, runtime/, cli/, integrations/, memory-model/, and views/

🔌 Project-Local Integration

The project carries everything it needs. Claude Code, Cursor, and Codex all get integration installed automatically on init -- hooks, runtime contracts, and slash commands. No global config.

Platform & Tool Support

Claude Code Cursor Codex
macOS full full bridge
Linux full full bridge
Windows full full bridge

full  Auto-installed on init -- hooks fire automatically, slash commands active, bedrock doctor validates health.   bridge  AGENTS.md installed when .codex/ detected -- agent loads memory context, no automated hooks.

CI matrix: ubuntu-latest + macos-latest, Python 3.9 / 3.12 / 3.13. Windows: Git Bash auto-detected; forward-slash paths and UTF-8 subprocess encoding fixed in v0.4.0.

Claude Code  .claude/
File Purpose
settings.json Lifecycle hooks: sync on SessionStart, Stop, PreCompact
CLAUDE.md Runtime contract: knowledge layers, session protocol, onboarding
commands/memory-update.md /memory-update slash command
commands/system-update.md /system-update slash command
commands/absorb.md /absorb <file/folder> slash command
Cursor  .cursor/
File Purpose
rules/bedrock.mdc Always-on rule: loads memory context on every session
hooks.json Lifecycle hooks: sync on start, update on write, sync on stop/compact
commands/memory-update.md /memory-update slash command
commands/system-update.md /system-update slash command
commands/absorb.md /absorb <file/folder> slash command
Codex  .codex/  (installed when detected)
File Purpose
AGENTS.md Agent contract with knowledge layer instructions

⚡ Session Lifecycle

Hooks fire automatically -- zero manual intervention:

Event Claude Code Cursor What runs
Session start SessionStart session-start bedrock sync
File saved -- post-write bedrock update
Task complete Stop stop bedrock sync
Context compaction PreCompact preCompact bedrock sync

The agent reads STATUS.md, Memory/PROJECT.md, and Work/NOW.md at the start of every session, with no prompting required.

💬 Slash Commands

These are how the team writes to the logbook. Both work in Claude Code and Cursor -- init installed them.

Command When to use it
/memory-update End of session, before logging off. The agent updates the project cockpit: stable facts in Memory/, current priorities in Work/, and a short summary of what changed.
/system-update After upgrading project-bedrock. Refreshes hooks, rules, commands. Purely infrastructure -- never touches knowledge content.

A developer should never finish a session without updating the cockpit. The point is not to save everything. The point is to save the next useful context.

🩺 Integration Health

bedrock doctor

Reports whether all integration files are installed and current. If anything is stale or missing, doctor tells you exactly what to run.


🔮 Obsidian-Ready

Each project's ./bedrock/ is a valid Obsidian vault on its own. But the real payoff is ~/agent-os/projects/: every project you've ever run init in is registered there. Open that folder in Obsidian and you have a unified vault across all your teams' projects -- backlinks, graph view, and full-text search spanning every codebase you manage.

One window. Every team.

Obsidian graph view
bedrock export-canvas
# produces: bedrock/Views/graph/knowledge-export.canvas

Obsidian is optional. Works without it too.


🛠️ Commands

Command What it does
init Set up a project -- one command, no arguments
sync Full sync: memory, history, git evidence, index
ship Validate + sync + commit + push
view Build site and open in browser
doctor Validate setup, integration health, note staleness
All commands

absorb · search · export-html · export-canvas · clean-import · refresh-system · backfill-history · compact · migrate-to-local · init --external

All write commands support --dry-run and --json. Run bedrock --help for the full list.

More

Star History

Star History Chart

Release files for project-bedrock 0.4.16

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

Source distribution (sdist)

Source distribution for project-bedrock 0.4.16
File Size Uploaded
project_bedrock-0.4.16.tar.gz 359.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for project-bedrock 0.4.16
File Interpreter ABI Platform
project_bedrock-0.4.16-py3-none-any.whl Python 3 none any Details

Total release size: 587.2 kB

Release files / project_bedrock-0.4.16.tar.gz

Download URL project_bedrock-0.4.16.tar.gz
Size 359.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3b3ef2a01912a3f60b24d2b810b663aada38ee8f76f8f5222e8c3dbdc783772e
BLAKE2b-256 checksum
How to use checksums
a5c5ca2d0799ad2d0a4e7877c1c05fe775f0df8efe4cee460e8826a90ecfff26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / project_bedrock-0.4.16-py3-none-any.whl

Download URL project_bedrock-0.4.16-py3-none-any.whl
Size 227.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52fa6c414bce7dcb0ed9cc41cedae1fb33f587b3870fd1b57e22610da2cf18af
BLAKE2b-256 checksum
How to use checksums
a3bf0e8af9d6c8497f5e618b1b3b78b153f40485e3562bb0f79239b0d2e787ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.4.16 This release

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.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