---
title: Understand Vector's configuration model
description: Connect Configuration Packages, Vector Configurations, runtime values, reusable extensions, Snapshot preflight, and OpenCode registration.
sidebar:
  label: Concepts
---

Vector defines and evaluates reusable OpenCode 2 configurations. The following concepts describe the path from authored source to host registration.

## Authored and distributed values

**Configuration Package** is an ordinary ESM package that distributes one or more Vector Configurations. The package toolchain owns compilation, publication, installation, and version selection.

**Vector Configuration** is one complete OpenCode configuration defined and evaluated as a reusable unit. Its `build(context)` callback returns the Extension Plan for one activation.

**OpenCode Plugin Entrypoint** is the default-exported OpenCode `Plugin.Plugin` value through which OpenCode loads a Vector Configuration. `defineVector()` and a builder's `defineVector()` return this value.

## Activation inputs

**Runtime Configuration** is per-installation JSON supplied outside the Vector Configuration and interpreted through the Configuration Author's Standard Schema. A builder opts in with `runtimeConfig`; validated values are available at `context.runtimeConfig`. Vector does not generate a fixed Runtime Configuration schema.

**Context** is the complete value available while extensions are assembled. It contains the validated Runtime Configuration, active directory, project identity, and any properties returned by `computeContext`.

## Extension pipeline

**Extension Definition** is a reusable extension with a fixed identity whose remaining values are assembled from Context. The specific `defineX` helpers create these values.

**Extension Plan** is the ordered set of Extension Definitions selected by the Vector Configuration's `build(context)` callback for one activation. It can also select supported defaults and Instruction Files.

**Instruction File** is a Configuration Package file selected as a source of **Global Instructions**, the shared instructions added to every agent available during activation. Vector preserves each agent's own system before the Global Instructions.

**Inline Skill** supplies its content within the Vector Configuration. **External Skill** identifies content maintained outside the Vector Configuration. A **Local Skill** uses a directory on the same machine. A **Managed Skill** uses a remote source through a named manager.

**Snapshot** is the complete materialized set of OpenCode extensions assembled from the Extension Plan. Every Extension Definition other than an External Skill receives the same Context while it builds. Instruction Files resolve into Global Instructions, and Local Skills and Managed Skills resolve into concrete skill values before the Snapshot is complete.

**Preflight** checks the complete Snapshot for duplicate identities and required cross-extension relationships before any host transform is registered. Instruction File resolution, External Skill resolution, and preflight all complete before registration starts; any failure prevents every transform registration.

**Registration** applies the preflighted Snapshot to OpenCode host domains. Registration is sequential and is not rolled back if a later host operation fails.

Read [Lifecycle](/activate/lifecycle) for the full activation sequence. Use [Extensions](/api/extensions), [Context](/api/context), and [Runtime Configuration](/api/runtime-config) for exact API contracts.
