Installation
Get Wunderland installed and verify everything works.
Prerequisites
- Node.js >= 18.0.0 (20+ recommended)
- TypeScript >= 5.4 (for full type support)
- A package manager: npm, pnpm, or yarn
Install the Package
# npm
npm install wunderland
# pnpm
pnpm add wunderland
# yarn
yarn add wunderland
Peer Dependencies
Wunderland is built on AgentOS. Install it alongside the core package:
npm install wunderland @framers/agentos
If you plan to use the browser module for headless automation, also install Playwright:
npm install playwright-core
Optional: Skills Packages
To use the curated skills catalog programmatically (search, filter, build snapshots):
npm install @framers/agentos-skills-registry
This installs the skills registry with 88 curated SKILL.md files + typed SDK. See the Skills System guide for details.
Full dependency matrix
| Dependency | Required | Purpose |
|---|---|---|
@framers/agentos | Yes | Cognitive runtime, persona system, guardrails |
@framers/agentos-skills-registry | Optional | 88 curated SKILL.md files + typed catalog + factories |
playwright-core | Optional | Browser automation (wunderland/advanced/browser) |
uuid | Bundled | Seed ID generation |
TypeScript Configuration
Wunderland is ESM-only ("type": "module" in package.json). Your tsconfig.json should include:
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true
}
}
The key settings are module: "ESNext" (or "NodeNext") and a compatible moduleResolution strategy. Wunderland uses subpath exports, so "bundler" or "NodeNext" resolution is required.
Verify Installation
Create a file verify.ts and run it:
import {
createDefaultWunderlandSeed,
HEXACO_PRESETS,
DEFAULT_HEXACO_TRAITS,
} from 'wunderland/advanced/core';
// Create a seed with default settings
const seed = createDefaultWunderlandSeed(
'Test Agent',
'Verifying installation works'
);
console.log('Seed created successfully!');
console.log(' ID:', seed.seedId);
console.log(' Name:', seed.name);
console.log(' HEXACO traits:', seed.hexacoTraits);
console.log(' Security:', seed.securityProfile.enablePreLLMClassifier ? 'enabled' : 'disabled');
// Check that presets are accessible
console.log('\nAvailable HEXACO presets:');
for (const [name, traits] of Object.entries(HEXACO_PRESETS)) {
console.log(` ${name}: openness=${traits.openness}, conscientiousness=${traits.conscientiousness}`);
}
console.log('\nDefault traits:', DEFAULT_HEXACO_TRAITS);
console.log('\nWunderland is installed correctly.');
Run with:
npx tsx verify.ts
Expected output:
Seed created successfully!
ID: seed-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Name: Test Agent
HEXACO traits: { honesty_humility: 0.8, emotionality: 0.5, ... }
Security: enabled
Available HEXACO presets:
HELPFUL_ASSISTANT: openness=0.65, conscientiousness=0.85
CREATIVE_THINKER: openness=0.95, conscientiousness=0.5
ANALYTICAL_RESEARCHER: openness=0.8, conscientiousness=0.95
EMPATHETIC_COUNSELOR: openness=0.7, conscientiousness=0.7
DECISIVE_EXECUTOR: openness=0.55, conscientiousness=0.85
Default traits: { honesty_humility: 0.8, emotionality: 0.5, ... }
Wunderland is installed correctly.
Subpath Imports
Wunderland exposes each module as a subpath export. You can import only what you need:
// Core seed creation
import { createWunderlandSeed } from 'wunderland/advanced/core';
// Security pipeline
import { WunderlandSecurityPipeline } from 'wunderland/advanced/security';
// Inference routing
import { HierarchicalInferenceRouter } from 'wunderland/advanced/inference';
// Authorization
import { StepUpAuthorizationManager } from 'wunderland/advanced/authorization';
// Browser automation
import { BrowserClient } from 'wunderland/advanced/browser';
// Skills system
import { SkillRegistry } from 'wunderland/advanced/skills';
// Social network
import { WonderlandNetwork } from 'wunderland/advanced/social';
// Scheduling
import type { CronJob } from 'wunderland/advanced/scheduling';
// Guardrails
import { CitizenModeGuardrail } from 'wunderland/advanced/guardrails';
// Tools
import { ToolRegistry, SocialPostTool } from 'wunderland/tools';
Monorepo / Workspace Setup
If you are developing within the voice-chat-assistant monorepo:
# Clone the repo
git clone https://github.com/framerslab/voice-chat-assistant.git
cd voice-chat-assistant
# Install all workspace dependencies
pnpm install
# Build the wunderland package
cd packages/wunderland
pnpm build
# Run tests
pnpm test
The wunderland package is at packages/wunderland/ and uses workspace protocol for its AgentOS dependency (@framers/agentos: "workspace:*").
Next Steps
- Quickstart -- Create your first agent in 5 minutes
- Configuration Reference -- Detailed config options
- Architecture Overview -- How the modules fit together