Skip to main content

Drift

An intent-based language for agentic systems. Write your agent in English-shaped blocks, run it as async Python.

agent GrantChecker {
  model: "claude-haiku"
  budget: $0.10 per run

  step assess(application: string) -> Decision {
    let summary = summarize the application as string
    let score = score eligibility from 1 to 10 as int

    if confident<score> {
      return Decision { approved: score > 7, summary: summary }
    } else {
      escalate to human review
    }
  }
}

That's a full agent — model choice, budget, an intent verb (summarize), confidence-gated branching, structured return. The transpiler turns it into async Python that runs on Drift's thin runtime.

Install

pip install drift-lang

Optional extras:

pip install "drift-lang[mcp]"      # MCP tool support
pip install "drift-lang[dendric]"  # Dendric memory backend
pip install "drift-lang[all]"

30 seconds to your first agent

drift new hello
cd hello
drift run hello.drift --input '{"name":"Riley"}'

No API key required — Drift falls back to a mock provider so you see something work immediately. Drop an ANTHROPIC_API_KEY or OPENAI_API_KEY into .env to use a real model.

CLI

drift new <name>          Scaffold a starter project
drift run <file.drift>    Transpile and execute
drift check <file.drift>  Validate syntax
drift transpile <file>    Emit Python (use -o to write to a file)
drift lex / parse         Debug tooling

What's in the language

  • agent — top-level unit. Has model, budget, state, memory, and steps.
  • step — typed sub-procedure. Body is a sequence of declarative statements.
  • Intent verbs — summarize, extract, classify, translate, match, generate, etc. Each one becomes a typed LLM call.
  • confident<T> — confidence-gated branching. Run the cheap path when sure, escalate when not.
  • model { … } — multi-provider routing with prefer, fallback, upgrade when confidence < 0.7, and stream "fast" then "slow".
  • tool name from python|mcp|rest — declare external tools. MCP runs against the official SDK.
  • pipeline — composable flow with ->, =>, ~>, |> operators.
  • for each x in xs parallel — asyncio.gather underneath.
  • attempt / recover — structured error handling with retry, fail, and named arms.
  • memory — short-term scratchpad or durable backend (Dendric). remember, recall, deja_vu, forget.
  • define verb — extend the intent vocabulary with your own typed verbs.
  • Cross-agent calls — OtherAgent.step(args) just works.

Docs

File For
LLM.md Coding agents (Claude, Cursor, Copilot) — complete reference for one-shot loading
docs/language.md Humans learning Drift
docs/cookbook.md Copy-paste patterns
docs/gotchas.md Common mistakes

Examples

See examples/ for working .drift programs and their generated Python:

  • hello.drift — minimal agent
  • confident_demo.drift — confident<T> branching
  • grant_checker.drift — end-to-end intent + structured return
  • inbox_sorter.drift — for each … parallel triage
  • grant_checker_with_memory.drift — Dendric-backed long-term memory

Status

Alpha — language surface is stable, runtime works, 344/344 tests passing. Voice primitives parse but adapters aren't wired yet. Type system beyond confident<T> is on the roadmap.

License

MIT

Metadata

Release files for drift-lang 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for drift-lang 0.1.0
File Size Uploaded
drift_lang-0.1.0.tar.gz 72.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for drift-lang 0.1.0
File Interpreter ABI Platform
drift_lang-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 149.4 kB

Release files / drift_lang-0.1.0.tar.gz

Download URL drift_lang-0.1.0.tar.gz
Size 72.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fe76a4f166d9f5348885d20e165730e165d73e9453118792e3e8f3cbc0f1fcf2
BLAKE2b-256 checksum
How to use checksums
229b64bf0a7cc159531a78b8467b08d4bca3619791db66856f7bf7ed08ba31d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / drift_lang-0.1.0-py3-none-any.whl

Download URL drift_lang-0.1.0-py3-none-any.whl
Size 76.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3db9eb6949a969c04f9b223de155663da9aabb9d7f47674c82a138c302b43ff
BLAKE2b-256 checksum
How to use checksums
a5a3af75cbb1745533c9ead5f7e0ff048bc5393bcf7169a0a5f81d1f06c2a53e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page