Write your AI context once. Generate configs for any coding tool.
Forge-core is a framework for maintaining AI session context as plain markdown — editable in Obsidian, version-controlled in Git, and compiled into platform-specific configs for Claude Code, Cursor, Copilot, OpenCode, Codex, or whatever ships next.
You write identity, preferences, and goals as markdown files. Forge compiles them into CLAUDE.md, .cursorrules, copilot-instructions.md, or AGENTS.md — whatever your coding tool expects.
Modules add behaviour on top: file access control (TLP — prevents the AI from reading sensitive files), daily journaling, session reflection, AI steering rules, Obsidian vault conventions. Skills give the AI operational capabilities it can pull on demand: /Log, /DailyPlan, /CreateSkill, /Draft, /Promote.
Everything loads progressively — only ~30 tokens per module at session start, full content on demand.
CLAUDE.mdandAGENTS.mdare generated outputs — do not edit directly. Modify your content inOrchestration/and runforge-update.shto regenerate.
git clone --recursive https://github.com/N4M3Z/forge-core
cd forge-core
make deps # install Rust toolchain, check for gh
make install # build all binaries (~3-5 min first time), symlink to ~/.local/bin
# Initialize for your AI coding tool:
bash Core/bin/forge-init.sh # auto-detect platform
# See what's available:
# Open Claude Code and type /SkillsEdit the scaffolded files in Orchestration/ (Identity.md, Preferences.md, Goals.md), then regenerate:
bash Core/bin/forge-update.shIf you already have an Obsidian vault, point Forge at it:
bash Core/bin/forge-init.sh --external-vault ~/path/to/vaultSkills are markdown files that teach the AI new capabilities. Here's a minimal example:
# skills/Greet/SKILL.md
---
name: Greet
description: Greet the user. USE WHEN hello, hi, greet, good morning.
---
When triggered, greet the user warmly and ask how you can help today.Create the file, restart Claude Code, and type "hello" — the Greet skill activates. For a full skill authoring guide with Dynamic Context Injection (executable lines that pull in live data) and the Draft/Promote lifecycle, use /CreateSkill.
| Module | Layer | Purpose |
|---|---|---|
| forge-avatar | Identity | Digital avatar — preferences, goals, self-knowledge |
| forge-steering | Behaviour | AI Steering Rules (Statement/Bad/Correct format) |
| forge-obsidian | Behaviour | Obsidian vault conventions |
| forge-tlp | Behaviour | Traffic Light Protocol — file access control (Rust) |
| forge-journals | Behaviour | Journal operations — daily plans, effort logging, timesheets (Rust) |
| forge-reflect | Behaviour | Session reflection + memory enforcement (Rust) |
| forge-apple | Platform | Safari tab capture, Calendar + Reminders via ekctl (macOS) |
Platform integrations for Microsoft 365, Google Workspace, and Proton Mail are scaffolded but not yet implemented.
Forge uses the same defaults.yaml / config.yaml pattern at every level:
| File | Purpose | Tracked |
|---|---|---|
defaults.yaml |
Committed project config — module order, shared paths | Yes |
config.yaml |
Your local override — vault path, custom module list | No (gitignored) |
To point Forge at your Obsidian vault, create config.yaml:
user:
root: ~/path/to/vaultmake deps # install Rust toolchain, check for gh
make install # build all binaries, symlink to ~/.local/bin
make test # run all Rust tests
make check # dry-run audit (prerequisites, binaries, modules)
make clean # remove all build artifacts
make uninstall # remove symlinks from ~/.local/binSee CONTRIBUTING.md for the module standard, skill authoring, and code style.
See Core/docs/Architecture.md for the full technical reference: dispatch flow, content delivery, DCI, config precedence, and module standard.