What is VCP?
The Value Context Protocol (VCP) is a standard for encoding user preferences, constraints, and context as portable categorical flags. Set it once, change it in real time, and participating services can adapt where they support live updates. Private details are omitted from outbound payloads by default.
VCP is built on three pillars:
- Portability -- Your context travels with you across platforms and services
- Adaptation -- AI behavior shifts automatically as your situation changes
- Liveness -- Personal state updates in real time, shaping responses moment to moment
"Context that travels with you, wherever you need it."
Quick Start
1. Define a VCP Context
A VCP context contains your preferences, constraints, and personal state:
import type { VCPContext } from 'vcp';
const context: VCPContext = {
vcp_version: "1.0",
profile_id: "user_001",
// Reference a constitution (behavioral guidelines)
constitution: {
id: "learning-assistant",
version: "1.0",
persona: "muse",
adherence: 3
},
// Public preferences - shared with all stakeholders
public_profile: {
goal: "learn_guitar",
experience: "beginner",
learning_style: "visual"
},
// Portable preferences - follow you across platforms
portable_preferences: {
noise_mode: "quiet_preferred",
session_length: "30_minutes",
budget_range: "low"
},
// Private context - influences local policy and is omitted from outbound payloads by default
private_context: {
_note: "Values here shape recommendations locally and are omitted from outbound payloads by default",
work_situation: "unemployed",
housing_situation: "living_with_parents"
},
// Personal state (v3.1) - real-time user state
personal_state: {
cognitive_state: { value: "focused", intensity: 3 },
emotional_tone: { value: "calm", intensity: 4 },
energy_level: { value: "rested", intensity: 3 },
perceived_urgency: { value: "unhurried", intensity: 2 },
body_signals: { value: "neutral", intensity: 1 }
}
}; 2. Encode to CSM-1 Token
The CSM-1 (Compact State Message) format is a human-readable token that encodes your context:
import { encodeContextToCSM1 } from 'vcp';
const token = encodeContextToCSM1(context);
// Output:
// VCP:1.0:user_001
// C:learning-assistant@1.0
// P:muse:3
// G:learn_guitar:beginner:visual
// X:🔇quiet:💰low:⏱️30minutes
// F:none
// S:🔒work|🔒housing
// R:🧠focused:3|💭calm:4|🔋rested:3|⚡unhurried:2|🩺neutral:1 3. Share with Stakeholders
The token carries what each service needs to adapt — compact, categorical, and instantly parseable:
| Line | Meaning | AI Sees |
|---|---|---|
G:learn_guitar:beginner:visual | Goal + skill level + style | ✓ Full detail |
X:🔇quiet:💰low | Noise + budget constraints | ✓ Flags only |
S:🔒work|🔒housing | Private context exists | ✗ Categories only |
R:🧠focused:3|💭calm:4|... | Real-time personal state | ✓ Shapes response style |
The AI knows that work and housing context influenced the recommendations, but not what that context is. This enables personalization without surveillance.
Key Concepts
Privacy Levels
- Public — Always shared (goals, experience level)
- Consent — Shared when you approve (specific preferences)
- Private — Omitted from outbound payloads by default, only influences locally (sensitive reasons)
Constitutions
Constitutions define AI behavioral guidelines. They specify what an AI should prioritize, avoid, and how it should interact. VCP contexts reference constitutions to ensure consistent behavior.
Personas
Different interaction styles built into constitutions:
- Muse — Creative, exploratory, encouraging
- Ambassador — Professional, diplomatic, balanced
- Godparent — Nurturing, supportive, patient
- Sentinel — Cautious, protective, conservative
- Nanny — Structured, directive, safe
- Mediator — Calm, structured, empathetic
See It in Action
Each pillar comes alive in a persona-driven demo:
- Gentian — Portability: Watch a single VCP token travel across three guitar-learning platforms
- Campion — Adaptation: See how context-switching between work and home personas changes AI behavior instantly
- Marta — Liveness: Adjust personal state sliders and watch AI guidance respond in real time
SDK Languages
VCP has official SDK implementations in two languages:
| Language | Status | Best For |
|---|---|---|
| Python | Complete | Reference implementation, LLM integration, persona logic, API servers |
| Rust | In Progress | High-performance parsing, WASM/browser, embedded systems, CLI tooling |
Python
pip install vcp-python-sdk
from vcp.semantics import encode_csm1, parse_csm1
token = encode_csm1(context)
parsed = parse_csm1(token_string) Rust
// Cargo.toml
[dependencies]
vcp-core = "0.1"
// Usage
use vcp_core::csm1::Csm1Token;
let token = Csm1Token::parse(token_str)?;
let encoded = token.to_string(); The Rust crate also compiles to WebAssembly, enabling client-side VCP
token validation directly in the browser via vcp-wasm.
Next Steps
- Core Concepts — Deep dive into VCP architecture
- CSM-1 Specification — Full token format reference
- Playground — Build tokens interactively
- All Demos — Six interactive demos covering portability, adaptation, liveness, and more