Skip to content

Modules

Import functions, constants, and models from other .vibe files:

import { greet, helper } from "./utils.vibe"
import { sharedModel } from "./config.vibe"
let message = greet("World")

Import directly from TypeScript files:

import { formatDate, parseConfig } from "./helpers.ts"
let formatted = formatDate("2025-01-15")

Vibe provides built-in utilities. Core functions like print and env are always available without import:

// No import needed for core functions
let apiKey = env("ANTHROPIC_API_KEY")
print("Key loaded")

Other utilities require import:

import { uuid, now, random } from "system/utils"
export function greet(name: text): text {
return "Hello, " + name
}
export const VERSION = "1.0.0"
export const MAX_RETRIES = 3
export model sharedAssistant = {
name: "claude-sonnet-4-20250514",
apiKey: env("ANTHROPIC_API_KEY"),
provider: "anthropic"
}

A typical project structure:

my-project/
├── main.vibe # Entry point
├── config.vibe # Shared models and constants
├── utils.vibe # Helper functions
├── tools/
│ ├── web.vibe # Web-related tools
│ └── files.vibe # File tools
└── .env # API keys

Example config.vibe:

// env() is always available - no import needed
export model claude = {
name: "claude-sonnet-4-20250514",
provider: "anthropic",
apiKey: env("ANTHROPIC_API_KEY")
}
export model gpt = {
name: "gpt-5.2",
provider: "openai",
apiKey: env("OPENAI_API_KEY")
}

Example main.vibe:

import { claude } from "./config.vibe"
import { summarize } from "./utils.vibe"
let content = "..."
let summary = summarize(content)
print(summary)