- Slugline-style prompts with INT./EXT. locations
- Dynamic time of day (DAY/NIGHT based on system time)
- Random scene transitions (CUT TO:, DISSOLVE TO:, FADE TO:, etc.)
- Customizable locations for your home directory
- Title page on terminal startup
- Fully customizable via simple text files
Add to your ~/.bashrc:
source /path/to/screenplay-prompt/screenplay-prompt.shAdd to your ~/.zshrc:
source /path/to/screenplay-prompt/screenplay-prompt.sh CUT TO:
INT. RICK'S - NIGHT
$ cd projects
DISSOLVE TO:
INT. /HOME/RICK/PROJECTS - NIGHT
$
All configuration files are stored in ~/.config/screenplay/ by default. Update location with:
export SCREENPLAY_CONFIG="$HOME/.screenplay"
source screenplay-prompt.shOne location per line. Used when in your home directory:
INT. RICK'S
INT. BEDROOM
INT. KITCHEN
EXT. COFFEE SHOP
One transition per line. Displayed right-aligned before each prompt:
CUT TO:
DISSOLVE TO:
FADE TO:
SMASH CUT TO:
Centered text displayed when opening a new terminal:
ANNIE HALL
written by
Woody Allen
Marshall Brickman
ANSI Support: Title files can include ANSI escape codes for styling. The centering algorithm correctly handles color codes:
\033[1;37mYOUR TERMINAL\033[0m
written by
\033[3mYou\033[0m
For the complete screenwriting experience, pair with:
- Font: Courier Prime (the digital screenwriting standard)
- Color scheme: High-contrast or minimal themes
- See
themes/directory for WezTerm configuration
Set custom config directory:
export SCREENPLAY_CONFIG="$HOME/.screenplay"
source screenplay-prompt.shNote: All git features gracefully degrade when not in a git repository.
Screenplay-prompt automatically detects git repositories and adds narrative context:
When you switch branches or enter a new repo, the branch introduces itself:
INT. /HOME/USER/PROJECT - DAY
FEATURE/AUTH-REFACTOR
(3 days old, optimistic, ready to ship)
$
Entering a new git repo displays the repo's story from .git/description:
INT. /HOME/USER/MY-PROJECT - DAY
MY-PROJECT, 3 months old, a web application for task management.
$
To set your repo description:
echo "Your project description here" > .git/descriptionYour commit count appears as a screenplay page number:
PAGE 247
CUT TO:
INT. /HOME/USER/PROJECT - DAY
- Bash: 3.2+ (tested on macOS default, Linux distros)
- Platforms: Linux (GNU), macOS (BSD), any POSIX-compliant system
- Terminal: Works in TTY and non-TTY environments (graceful degradation)
- Portability: Automatic fallback for missing
shufcommand on BSD/macOS - Git: 1.7+ (optional - features disabled if git not available)
MIT