Getting Started

Get up and running with VCP in 5 minutes.

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:

LineMeaningAI Sees
G:learn_guitar:beginner:visualGoal + skill level + style✓ Full detail
X:🔇quiet:💰lowNoise + budget constraints✓ Flags only
S:🔒work|🔒housingPrivate 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:

  • GentianPortability: Watch a single VCP token travel across three guitar-learning platforms
  • CampionAdaptation: See how context-switching between work and home personas changes AI behavior instantly
  • MartaLiveness: Adjust personal state sliders and watch AI guidance respond in real time

SDK Languages

VCP has official SDK implementations in two languages:

LanguageStatusBest For
PythonCompleteReference implementation, LLM integration, persona logic, API servers
RustIn ProgressHigh-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