Your Claude Code context, versioned and portable. Stop copying CLAUDE.md. Start composing it.
npm install @grazulex/contextmark




Synchronize your Claude Code contexts (CLAUDE.md, rules, skills) across all your projects and machines - like EnvMark for your AI contexts.
Quick Start ⢠Documentation ⢠Why ContextMark?
---
Managing Claude Code contexts across 20+ repositories and 2 machines:
```
~/projects/
āāā reposentinel/
ā āāā CLAUDE.md ā copied from backmark, modified since
āāā backmark/
ā āāā CLAUDE.md ā "original" version but which one?
āāā shipmark/
ā āāā CLAUDE.md ā outdated, forgot to update
āāā new-project/
ā āāā ??? ā start from scratch again
āāā ~/.claude/
āāā CLAUDE.md ā global config, only on this machine
āāā rules/ ā lost if machine dies
Daily frustrations:
- Global config (~/.claude/) only exists on this machine
- Copy-paste between repos = inevitable divergence
- Two machines = double maintenance, guaranteed drift
- No backup of your carefully crafted Claude instructions
---
`bashInstall globally
npm install -g @grazulex/contextmark
On another machine:
`bash
contextmark init-library
contextmark sync setup git@github.com:user/claude-configs.git
contextmark sync pull
contextmark pull --global # Restore your global config
`ā Complete Getting Started Guide
---
⨠Why ContextMark?
$3
Like EnvMark for your Claude configs:
- push saves to library
- pull restores from library
- diff shows changes
$3
Git-based synchronization keeps your library in sync across all your development machines.
$3
Back up everything:
- ~/.claude/CLAUDE.md
- ~/.claude/rules/*
- ~/.claude/skills/*
- Per-project configs
$3
Standard Markdown and YAML files. No proprietary formats. Your context will be readable forever.
---
š Commands
$3
`bash
Global config (~/.claude/)
contextmark push --global # Save to library
contextmark pull --global # Restore from library
contextmark diff --global # ComparePer-project config
cd ~/projects/my-project
contextmark init # Register project
contextmark push # Save to library
contextmark pull # Restore from library
contextmark diff # Compare
contextmark status # Check sync statusSync with Git remote
contextmark sync setup # Configure remote
contextmark sync push # Push to remote
contextmark sync pull # Pull from remote
contextmark sync status # Check remote status
`$3
For power users managing 50+ projects with shared conventions:
`bash
Create reusable blocks
contextmark block create laravel/base
contextmark blocksCreate profiles (combinations of blocks)
contextmark profile create my-stack
contextmark profilesInitialize project with profile (generates CLAUDE.md)
contextmark init --profile my-stack
contextmark status # Check for block updates
contextmark update # Update from blocks
`---
š Library Structure
`
~/.contextmark/
āāā config.yml # Global configuration
āāā global/ # Your ~/.claude/ backup
ā āāā CLAUDE.md
ā āāā rules/
ā ā āāā backmark.md
ā ā āāā git-commits.md
ā āāā skills/
ā āāā backmark/
āāā projects/ # Per-project configs
ā āāā my-app/
ā ā āāā CLAUDE.md
ā āāā another-project/
ā āāā CLAUDE.md
āāā blocks/ # [Advanced] Reusable blocks
āāā profiles/ # [Advanced] Block combinations
āāā agents/ # [Advanced] Reusable agents
āāā commands/ # [Advanced] Custom commands
`---
š§ Configuration
$3
`yaml
default_profile: defaultsync:
method: git
remote: git@github.com:user/claude-configs.git
auto_pull: true
auto_push: false
cli:
colors: true
confirm_destructive: true
global:
enabled: true
`$3
`yaml
project: my-project
profile: null # null = simple mode, or profile name
blocks: []
generated_at: 2025-01-15T10:30:00Z
last_push: 2025-01-15T10:35:00Z
``---
| Tool | Purpose |
|------|---------|
| Backmark | AI-powered task management |
| Stackmark | Docker environment management |
| Shipmark | Release and versioning automation |
| EnvMark | Environment variable management |
| ContextMark | Claude Code context management |
---
MIT Ā© Jean-Marc Strauven
---
Documentation ⢠Report Bug ⢠Request Feature
Made with š for the Claude Code community