The agentic framework
for TypeScript.

From your first agent to durable workflows.
Typed tools, any model, and control over every run.

npm install @fevex/core
YOUR CODE. YOUR MODELS. YOUR INFRASTRUCTURE.See it in code

01 A SMALL API. A SOLID FOUNDATION.

Start small.
Build from there.

Define an agent, give it a model, and run it. Add tools and infrastructure when your application needs them.

Open the full quickstart
Deterministic local example No API key required
agent.ts
import { createFevex, defineAgent } from '@fevex/core';
import { fakeModel } from '@fevex/core/testing';

const app = createFevex({
  models: { default: fakeModel({ output: 'Hello from FEVEX.' }) },
  agents: [defineAgent({
    name: 'assistant',
    instructions: 'Be clear. Be helpful.',
  })],
});

const result = await app.runAgent('assistant', { input: 'Hello!' });
console.log(result.output); // Hello from FEVEX.

Runs locally. No API key required.

02 ENGINEERED TO FIT YOUR STACK

Small contracts.
Room to build.

Keep behavior explicit, your models replaceable, and your application in control.

FEVEX
Agents
Tools
Models
Workflows
Teams
Sessions
Streaming
Approvals
Events
Schemas
Evals
Observability

Typed by design.

Define agents and tools in TypeScript. Validate inputs and outputs at runtime.

Explore typed tools

Your choice of model.

One small contract for every provider. Add adapters without changing your application.

Meet ModelGateway

Ready for the real work.

Compose workflows and teams. Add a persistent store for durable execution and recovery.

Explore workflows

03 AN OPEN ECOSYSTEM

One core.
Your connections.

Install only what you need. Models, remote tools and persistence live in optional adapters.

ONE GATEWAYAny provider implements the same small contract
OpenAI@fevex/openai
DeepSeek@fevex/deepseek
CustomModelGateway
Roadmap: messaging channels are next.See status & scope

04 BEYOND THE HAPPY PATH

Every boundary checked.
Every run observable.

Validate tool inputs and outputs. Follow lifecycle events, require approvals, and recover durable runs with a persistent store.

Explore durable execution Early MVP · APIs may evolve
THE EXECUTION LIFECYCLEExample
  1. 01
    Start a runrun.started
    Agent + input
  2. 02
    Call the modelmodel.completed
    Provider neutral
  3. 03
    Validate & execute toolstool.completed
    Typed boundaries
  4. 04
    Return a resultrun.completed
    Observable output

VALIDATION BOUNDARIES

  1. Your appTool input
  2. ToolTool output
  3. AgentFinal output
  4. Your app

05 FROM THE REPOSITORY

Real code.
A head start.

Browse all examples

YOUR NEXT AGENT STARTS HERE

Start with code.
Make it yours.

Open source · Apache-2.0 · TypeScript