Skip to main content

A feature-rich tarot reading toolkit with graphical and CLI interfaces.

Project description

TarotTeller

TarotTeller is a modern Python toolkit for exploring tarot cards through scripted workflows, a friendly command line interface, and an optional desktop experience. It ships with a complete 78-card deck, positional spreads, contextual storytelling, and immersive journaling prompts so that every reading feels intentional and repeatable.

Key capabilities

  • Rich tarot data model – Generate a shuffled 78-card deck with upright and reversed interpretations, orientation-aware text, elemental correspondences, and numerology insights.
  • Spread orchestration – Work with bundled layouts such as a single-card draw, three-card story, and the ten-card Celtic Cross or specify an ad-hoc card count for quick pulls.
  • Context-aware insights – Analyse a querent question to identify themes, timeframe, and sentiment, then blend that profile with spread prompts to surface personalised guidance.
  • Immersive companions – Layer rituals, soundtrack suggestions, and journaling prompts over readings in radiant, mystic, or grounded tones.
  • Multiple interfaces – Use the tarotteller CLI for scripted draws, launch the Tkinter GUI for live sessions, or import the Python API for automation and experimentation.

Installation

TarotTeller uses a pyproject.toml-driven build powered by setuptools and the src/ layout.

python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

Once installed, the tarotteller and tarotteller-gui console scripts become available.

Command line quick start

List cards, inspect a profile, or draw readings directly from your shell:

# Show the first five major arcana cards
$ tarotteller list --arcana major --limit 5

# Print detailed information about The Magician
$ tarotteller info "The Magician"

# Pull a three-card spread with deterministic shuffle and orientation
$ tarotteller draw --spread three_card --seed 11 --orientation-seed 21

# Draw two upright-only cards with immersive storytelling in a grounded tone
$ tarotteller draw --cards 2 --no-reversed --immersive --tone grounded

Provide --question text to unlock contextual analysis and personalised insight for each draw. Seeds can be supplied to reproduce both card order and orientation.

Graphical interface

Launch the Tkinter-powered desktop client after installation:

tarotteller-gui

The GUI lets you pick a spread (or override the card count), capture the querent's question, toggle reversed cards, and decide whether to show positional prompts or immersive extras. Results combine spread prompts, card meanings, correspondence layers, and optional personalised summaries generated from the question profile. A dedicated help dialog summarises controls and reading tips.

Python API

Interact with the deck and spreads from your own scripts:

from tarotteller import (
    TarotDeck,
    draw_spread,
    build_immersive_companion,
    analyze_question,
    InterpretationEngine,
    TarotKnowledgeBase,
)

# Prepare the deck and spread
deck = TarotDeck()
deck.seed(42)
deck.reset(shuffle=True)
reading = draw_spread(deck, "three_card", rng=13)

# Build contextual insights
profile = analyze_question("What career move should I pursue next quarter?")
engine = InterpretationEngine(TarotKnowledgeBase(deck.all_cards))
insights = engine.insights_for_reading(reading, profile)

for placement, insight in zip(reading.placements, insights):
    print(f"{placement.position.title}: {insight.card_name} ({insight.orientation})")
    print(f"   {insight.message}")

# Optional immersive companion text
print()
print(build_immersive_companion([p.card for p in reading.placements], tone="mystic", profile=profile))

Project structure

TarotTeller follows the canonical packaging layout so it can be published to PyPI without adjustments:

src/tarotteller/
├── __init__.py              # Public package surface and version metadata
├── core/                    # Deck, spread, context analysis, and knowledge base logic
├── interfaces/              # CLI and GUI entry points with console script bindings
└── narrative/               # Immersive storytelling helpers

Tests live under tests/ and target the public API, CLI, and GUI helpers.

Development workflow

  1. Create and activate a virtual environment (see Installation above).
  2. Install development dependencies if needed (for example pip install -e .[dev] when extra requirements are added).
  3. Run the automated test suite:
    pytest
    
  4. Use python -m tarotteller.interfaces.cli ... or python -m tarotteller.interfaces.gui for module-based debugging.

Version history

Version Date Highlights
0.2.0 Unreleased Reorganised the package into core, interfaces, and narrative modules, introduced consolidated public exports, and refreshed documentation for distribution readiness.
0.1.0 2024-03 Initial release with deck generation, spreads, CLI, GUI, contextual insights, and immersive companion stories.

Dates will be finalised when publishing tagged releases. Follow semantic versioning as future features land.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tarotteller-0.2.0.tar.gz (32.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tarotteller-0.2.0-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

Details for the file tarotteller-0.2.0.tar.gz.

File metadata

  • Download URL: tarotteller-0.2.0.tar.gz
  • Upload date:
  • Size: 32.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for tarotteller-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f0f3e8c07c7afb1e199ec59fc55cd3982922a27059d8787ea397f9816eae772c
MD5 1bbaf540c68c0c28dcbcb7a0908eca98
BLAKE2b-256 67e0b6c9a3db286cbada035475a96e06d8a704b3aef066cfb1a44d3a85c8605a

See more details on using hashes here.

File details

Details for the file tarotteller-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: tarotteller-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 33.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for tarotteller-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae6f7cca22de5bd89f2ab4f595b23d265fc3979ac0e0a613e3ea0ce26f9a92b0
MD5 e460058302e6dac586b97c33d09a64dd
BLAKE2b-256 7f87670e805f20c23cc5f7ff9843652712d720e1b9ada1842d6cfeecce9c784e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page