flue-eve

Configuration Reference

Configuration comes from three sources, merged in priority order:

  1. CLI flags (highest)
  2. eve.config.ts
  3. flueEve() plugin options (lowest)

Vite plugin options

flueEve({
  // === Agent ===
  agentName: 'assistant',
  modelId: 'anthropic/claude-sonnet-4-6',
  instructions: 'You are a helpful assistant.',

  // === Paths ===
  eveMount: '/eve/v1',
  flueRoot: process.cwd(),

  // === Dev server ===
  flueBaseUrl: undefined,
  spawnFlueDev: true,
  proxyMode: 'eve-routes-only',
  healthTimeout: 30000,
  healthInterval: 500,

  // === Scaffold ===
  scaffold: {
    enabled: true,
    agent: true,
    tools: true,
    connections: false,
    sidecar: true,
    appMount: true,
    forceScaffold: false,
  },
  forceScaffold: false,

  // === Aliases ===
  aliasEveImports: 'auto',
})

Agent options

OptionTypeDefaultDescription
agentNamestring"assistant"Flue agent name
modelIdstring"anthropic/claude-sonnet-4-6"LLM model specifier
instructionsstringundefinedSystem prompt (overrides agent/instructions.md)

Path options

OptionTypeDefaultDescription
eveMountstring"/eve/v1"Where Eve routes are mounted
flueRootstringVite project rootFlue project root directory

Dev server options

OptionTypeDefaultDescription
flueBaseUrlstringundefinedURL of running Flue server for loopback admission
spawnFlueDevbooleantrueAuto-start flue dev with Vite
proxyMode"eve-routes-only" | "all""eve-routes-only"Which requests to proxy
healthTimeoutnumber30000Max ms to wait for Flue health check
healthIntervalnumber500Ms between health check retries

Scaffold options

OptionTypeDefaultDescription
scaffold.enabledbooleanfalseEnable code generation
scaffold.agentbooleantrueGenerate agent definition
scaffold.toolsbooleantrueGenerate tool adapters
scaffold.connectionsbooleanfalseGenerate connection adapters
scaffold.sidecarbooleantrueGenerate Eve compat sidecar
scaffold.appMountbooleantrueInject mountEveCompat into app.ts
scaffold.forceScaffoldbooleanfalseOverwrite existing files
forceScaffoldbooleanfalseShorthand for scaffold.forceScaffold

Alias options

OptionTypeDefaultDescription
aliasEveImports"auto" | boolean"auto"Alias eve/* to flue-eve/*

eva.config.ts

// eve.config.ts
import { defineEveCompat } from 'flue-eve/vite/config'

export default defineEveCompat({
  agentName: 'assistant',
  modelId: 'anthropic/claude-sonnet-4-6',
  instructions: 'You are a helpful assistant.',
  eveMount: '/eve/v1',
  scaffold: {
    enabled: true,
    agent: true,
    tools: true,
  },
})

Compat-server options

evaCompat()

import { eveCompat } from '@flue-eve/compat-server'

app.route('/eve/v1', eveCompat({
  agentName: 'assistant',
  admission: myAdmission,
  auth: 'none',
  persistence: { type: 'memory' },
  maxEvents: 10000,
  cors: {
    origin: 'https://my-app.com',
  },
}))
OptionTypeDefaultDescription
agentNamestringRequiredFlue agent name
admissionAdmissionFnRequiredHow to submit turns to Flue
auth"none" | "token" | "bearer""token"Authentication mode
persistencePersistenceConfig{ type: "memory" }Journal persistence backend
maxEventsnumber10000Max events in journal per session
corsCorsConfigundefinedCORS middleware config
connectionsConnectionRegistryundefinedConnection registry for MCP tools

Persistence config

// Memory (default)
persistence: { type: 'memory' }

// SQLite
persistence: {
  type: 'sqlite',
  dbPath: './eve-journal.db',
}

// File
persistence: {
  type: 'file',
  dir: './eve-journals',
}

// Redis
persistence: {
  type: 'redis',
  redis: redisClient,
  keyPrefix: 'eve:journal:',
}

// Cloudflare KV
persistence: {
  type: 'kv',
  kvNamespace: MY_KV,
}

// Cloudflare Durable Object
persistence: {
  type: 'durable-object',
  doNamespace: EVE_JOURNAL,
}

Auth config

ModeDescription
"none"No authentication — dev only
"token"Simple bearer token via EVE_AUTH_BEARER env
"bearer"Full bearer auth with custom validation

In production, auth defaults to "token" and fails closed (401) unless auth: "none" is explicitly set.

CORS config

cors: {
  origin: 'https://my-app.com',     // allowed origin
  methods: ['GET', 'POST'],         // allowed methods
  headers: ['Content-Type'],        // allowed headers
  credentials: true,                 // allow cookies
}

Environment variables

VariablePurpose
FLUE_BASE_URLFlue server URL for loopback admission
FLUE_AGENT_URLCustom Flue agent URL (overrides auto-resolution)
FLUE_AGENTService Binding name for Cloudflare Workers
EVE_AUTH_BEARERBearer token for production auth
EVE_AUTH_MODEAuth mode override (none, token, bearer)
NEXT_PUBLIC_BASE_PATHBase path for docs site (GitHub Pages)

See environment variables and eve.config.ts guide for usage.