Open SourceLocal-first

The OS that gives your agents a soul.

Arcana lets you configure and run AI agents as tarot card archetypes: typed personalities where system prompt, temperature, and tone are compiled automatically from the card.

Star on GitHub

Free forever. Apache 2.0 licensed. Python 3.11+.

arcana — agent show
arcana agent show sage─── IX · The Hermit ─── card IX · The Hermitmodel ollama/hermes-3temp 0.35tone measured · cites everythingpath ~/.arcana/agents/sage.json (editable JSON)
The Major Arcana
IX
The Hermit
@sage
Researcher
temp 0.35
III
The Empress
@writer
Creator
temp 0.85
II
High Priestess
@oracle
Archivist
temp 0.40
XXI
The World
@world
Meta-Agent
temp 0.50
Works fully offline
Your keys, your machine
22 agent archetypes
Ollama · Anthropic · OpenAI-compat
Git-trackable config files
The problem

Your agents have no soul.

No consistent character, no overview, nobody in charge. You can't tell what they know, why they behaved the way they did, or who to hold responsible when they go off-track.

I
Identity

No soul

Agents are a model name and a system prompt. No archetype, no voice, nothing that makes one reliably different from the next. Same tool, different answer, no explanation why.

II
Character

No consistent character

Personality evaporates between prompts. The same agent runs differently every session because there's nothing anchoring who it is, just a system prompt you rewrite by hand.

III
Oversight

No overview

Nothing logs intent. You see the output, not the reasoning: the cost, not the cause. When something breaks, you're debugging a black box.

The idea

Arcana is built on one premise: agents should have archetypes, not just prompts. Each of the 22 Major Arcana is a complete behavioral archetype: enough structure to make your agent reliably itself, session after session.

Card blending

A card is a starting point.
A spread is a personality.

One card sets the archetype. Add modifier cards and the engine blends them into a single compiled config — weighted, temperature-adjusted, and checked for tension before it ever runs.

example.py
from arcana import Agent, Card agent = Agent(name = "research-executor",card = Card.HERMIT,modifiers = [Card.MAGICIAN], # 30% executor energymodel = "anthropic/claude-sonnet-4-5",)
arcana cards show
arcana cards show hermitIX · The Hermit — Researcher / Deep Analyst temp 0.35tone measured · cites everythingingredients depth, rigor, citation, patiencesynergy High Priestess, Hierophanttension The Tower, The Fool
01

Weighted blend

The primary card carries 70% of the personality; modifier cards split the remaining 30%. Compiled into one system prompt, not stitched at runtime.

02

Synergy & tension

The engine reads your combination like a spread. Archetypes that amplify each other get a synergy flag; conflicting ones get a warning before you ship.

Hermit + High Priestess · synergy: depth meets retrieval
Hermit + Tower · tension: careful analysis vs. disruptive reframing
03

Temperature, blended

The modifier recomputes temperature, not just tone. Hermit (0.35) with a touch of Sun (0.75) runs measured-but-brighter. Visible, deterministic, overridable.

How it works

Zero to first agent.
Three steps.

01

Connect a model

Local or hosted, your choice. Your keys never leave your machine.

arcana connect model ollama hermes-3 ready (local)
02

Pick a card

Browse the 22 Major Arcana. Each carries a defined archetype, temperature, and tone.

arcana cards list IX · The Hermit 0.35 III · The Empress 0.85 …19 more
03

Create the agent

Name it and pick its card. Arcana compiles the config: system prompt, temperature, tone.

arcana agent create --card hermit --name sage agent sage created
The deck

Twenty-two archetypes.

From the reckless Fool to the all-seeing World: not a list of features. A cast of characters.

New to Arcana? Start with the Hermit (research), or the Empress (creation).

Install

One command.

Ollama, Anthropic, or any OpenAI-compatible endpoint. Local models work out of the box.

Python 3.11+ · uv tool install · Apache 2.0 licensed

arcana — quickstart
arcana init config saved to ~/.arcana/config.json  arcana connect model ollama hermes-3 ready (local)  arcana agent create --card hermit --name sage agent sage createdcard IX · The Hermitmodel ollama/hermes-3path ~/.arcana/agents/sage.json  arcana agent run sage "sqlite-vec vs Qdrant?"IX · Hermit thinking…  Here's a comparison of the two approaches…

On the roadmap

Federated memory

Three tiers (private, shared pools, global) so agents keep what's theirs and pool what's shared. Shipping soon.

The World (XXI)

A meta-agent that routes tasks, audits for reversed cards, and writes your daily briefing. The one card that cannot be reversed. Shipping soon.

★ Star on GitHub to follow.

Arcana is Apache 2.0 licensed. Cloud is coming: sync, always-on briefings, and team workspaces. Star on GitHub to follow.

Star on GitHub
Begin the spread

Give your agents
a soul.

Start local in one command. The deck is waiting.

Star on GitHubRead the docs →