Dirac is a declarative execution language specifically designed for the AI era, where large language models (LLMs) are not just tools, but active participants in code execution. It's named after physicist Paul Dirac and his bra-ket notation, reflecting its dual nature: bridging human-readable declarations with machine execution.
Traditional programming languages separate code from AI. You write code, then separately call an LLM API. Dirac eliminates this boundary:
<llm execute="true">
Create a Dirac program that lists all .txt files,
reads the first one, and summarizes it.
</llm>
The LLM doesn't just respond—it generates Dirac code that immediately executes. The generated code can itself call LLMs, creating a recursive chain where AI and execution seamlessly interweave.
Dirac treats LLMs as autonomous agents that can:
Example of an agentic workflow:
<llm output="fileList">
<system>ls -la</system>
Analyze these files and create Dirac code to process them.
</llm>
<execute source="fileList"/> <!-- LLM-generated code runs here -->
Dirac is not just agentic—it's also a natural fit for neural-symbolic AI. Its bra/ket-inspired knowledge representation allows you to express and connect symbolic logic and neural computation in a unified language.
In Dirac's bra/ket notation, this can be represented as:
|mortal⟩⟨human| (all humans are mortal)|human⟩⟨Socrates| (Socrates is a human)When you ask |Socrates⟩, chaining these together yields |mortal⟩.
From a neural network perspective, these bra/ket pairs are like matrices (or tensors), and the input |Socrates⟩ is a vector. The network applies transformations—possibly nonlinear—to produce an output.
From a symbolic AI perspective, these are like Dirac subroutines:
<subroutine name="human">
<mortal/>
</subroutine>
Or, in Dirac's shorthand:
<human|
|mortal>
Dirac bridges these worlds:
Dirac is the missing link for building systems where symbolic structure and neural intelligence work together—making it ideal for the next generation of explainable, powerful AI.
LLMs are first-class citizens, not afterthoughts:
<llm>What is 2+2?</llm> <!-- Direct output -->
<llm output="result">Calculate 2+2</llm> <!-- Store in variable -->
<llm execute="true">Write a loop</llm> <!-- Generate and execute code -->
Express what you want, not how to do it:
<system>df -h</system> <!-- Run shell command -->
<llm>Summarize the disk usage above</llm>
Programs can generate programs:
<subroutine name="analyze">
<llm execute="true">
Generate code to analyze <variable name="data"/>
</llm>
</subroutine>
Inspired by quantum mechanics, our .bk format reduces verbosity:
XML (.di):
<subroutine name="greet">
<parameters select="@name"/>
<output>Hello, <variable name="name"/>!</output>
</subroutine>
<greet name="World"/>
Bra-Ket (.bk):
<greet|
|parameters select=@name>
|output>Hello, |variable name=name>!
|greet name=World>
Import and compose functionality with namespace-safe prefixes:
<import src="dirac-http"/>
<HTTP_GET url="https://api.example.com"/>
<import src="dirac-database"/>
<DB_QUERY>SELECT * FROM users</DB_QUERY>
<llm execute="true">
<system>docker ps</system>
Analyze these containers and create Dirac code to
restart any that are unhealthy.
</llm>
<llm output="analysis">
<system>cat data.csv | head -20</system>
What patterns do you see? Generate Dirac code to process the full file.
</llm>
<execute source="analysis"/>
<llm execute="true">
I need to backup all .js files modified today to ~/backup.
Write Dirac code to do this.
</llm>
<llm output="step1" execute="true">
Task: Analyze logs in /var/log. Generate code for this step.
</llm>
<llm execute="true">
Previous step output: <variable name="step1"/>
Now generate code to summarize findings and email the report.
</llm>
In traditional programming, recursion means a function calling itself. In Dirac, the entire execution model is recursive:
This creates a self-extending execution environment where the boundary between "prompt" and "program" dissolves.
npm install -g dirac-lang
hello.di:
<dirac>
<output>Hello, World!</output>
</dirac>
Run it:
dirac hello.di
With LLM (requires API key):
export ANTHROPIC_API_KEY=your-key
echo '<dirac><llm>Write a haiku about code</llm></dirac>' | dirac -
Dirac embraces three principles:
We're building toward a world where:
Dirac is more than a language—it's a paradigm shift in how we think about code and AI. If you believe that:
...then Dirac is for you.
Start building the future today.
npm install -g dirac-lang