clone

a terminal ui for alamo drafthouse showtimes, as movie cards or a timeline of every screen

main
showings
README.md

Showings

A terminal UI for browsing Alamo Drafthouse movie showtimes. Built with Go and the Charmbracelet stack.

Demo

Features

  • Movie List View -- Movies displayed as bordered cards with title, rating, synopsis, and showtime chips (time, screen, format). Past showtimes are dimmed and struck through.
  • Gantt Timeline View -- Horizontal bar chart where each row is a theater screen. Color-coded bars represent screenings over time with hour rulers, half-hour ticks, and a live "NOW" marker.
  • Date Navigation -- Step through available dates or jump to today.
  • Venue Switching -- Modal dialog to switch between cinemas in your market (e.g., Denver: Westminster, Sloans Lake, Littleton).
  • Scrollable Viewport -- Full keyboard-driven navigation with scroll indicator.

Install

Requires Go 1.24+.

go install github.com/dami/showings@latest

Or build from source:

git clone git@github.com:FelineStateMachine/showings.git
cd showings
go build -o showings .

Usage

showings                              # Westminster, today, list view
showings -v sloans-lake               # Different venue
showings -d 2026-02-20                # Specific date
showings -g                           # Open in Gantt view
showings -v littleton -d 2026-02-20 -g  # All options combined

Flags

Flag Short Default Description
--venue -v westminster Alamo Drafthouse venue slug
--date -d today Date filter (YYYY-MM-DD)
--gantt -g false Open in timeline view

Keyboard Controls

Key Action
q / Ctrl+C Quit
g Toggle list / Gantt view
v Open venue selector
t Jump to today
n / p Next / previous date
↑↓ / j k Scroll
Enter Select venue (in modal)
Esc Close modal

Architecture

main.go              CLI entrypoint (Cobra)
internal/
├── api/             HTTP client for Alamo Drafthouse schedule API
├── models/          Go structs mapping the API response + helper methods
├── state/           Bubble Tea model, rendering, styles, date logic
└── views/           List view and Gantt timeline renderers

The app fetches data from the public Alamo Drafthouse schedule endpoint (/s/mother/v2/schedule/venue/{slug}), maps it into typed Go structs, and renders it through Bubble Tea's Elm Architecture update loop.

Tech Stack

Tests

go test ./...

Covers API client (mock HTTP server), model filtering, and data lookups.

License

Private.