YEN

Overview

Note from Creator: After more than twenty years as a product designer and engineer, I've slowly discovered that simple tools are oftentimes the best. Many times we get distracted by large feature sets when we should be focused on how information is being absorbed and understood — and how taxing it is to context switch.

Think about it: Jumping from meta-level issues happening around you to the minutiae of a text message, then to a different application, then to another service. Every time you want to genuinely understand information, you have to mentally jump between different universes of products and services. That's a real taxation on your time, your mental resources, your capacity, and your creativity — which is really important. Not to mention your overall mental health.

I've always wanted a unified paradigm where I can have everything I need in the same scope, the same UI, and the same UX. I don't have to functionally context switch in terms of my actual behavior and the way my hands move. In fact, I don't even have to touch a mouse. I can do everything I need in a single unified frame.

I love that. And I want that for other people. I want people to save time. I want them to save their emotional and psychological health. So it's really important to build this not only for myself, but as a gift to other folks who really want to be productive and really want to maximize their time.

Because time is the most valuable resource. It's limited, and once you use it up, it's gone.

8

Feature Categories

  • User Features - Enhancements that make using the terminal more pleasant without requiring changes to terminal applications
  • macOS Features - Native platform integration for an idiomatic macOS experience
  • Shell Integration - Deep integration with your shell for enhanced productivity
YEN terminal window showing features

User Features

Features that enhance your terminal experience without requiring any changes to the applications you run inside it.

GPU-Accelerated Rendering

YEN GPU-accelerated rendering

YEN uses Metal, Apple's GPU framework, to render the terminal screen at 60 FPS. This provides smooth scrolling, responsive interaction, and efficient rendering even with complex output.

  • Metal Backend - Native macOS GPU acceleration for optimal performance
    In simple terms: Your Mac has two processors — the CPU (main brain) and the GPU (graphics brain). Most terminals use only the CPU, which is like asking one person to do everything. YEN uses Metal to tap into your Mac's powerful graphics processor, which is specifically designed for drawing things on screen. This means YEN can show text instantly without making your Mac work harder or drain battery. Why this matters: When text appears instantly as you type, you stay focused on your work instead of waiting for the screen to catch up. No lag means no interruptions to your flow, saving precious seconds that add up throughout your day.
  • 60 FPS Rendering - Smooth, fluid terminal output
    In simple terms: FPS stands for "frames per second" — it's how many times per second your screen updates with new information. Movies play at 24 FPS, video games aim for 60 FPS. YEN renders at 60 FPS, meaning the screen updates 60 times every second. This creates that buttery-smooth feeling when scrolling through code or command output. Why this matters: Smooth scrolling means your eyes don't have to work as hard to follow text. Less eye strain means longer, more productive sessions. When scrolling feels natural, you can focus on understanding your code instead of fighting with a janky interface.
  • Efficient Memory Usage - Optimized for long-running sessions
    In simple terms: Memory (RAM) is like your desk space — the more you use, the slower things get. YEN is designed to use memory efficiently, so it doesn't hog resources even when you leave it running for hours or days. Why this matters: When your terminal doesn't slow down your Mac, you can keep it open all day without restarting. This saves time because you don't lose your place or have to reopen everything. More available memory means other apps run faster too, keeping your entire workflow smooth.
  • VSync Support - Synchronized rendering with display refresh rate
    In simple terms: VSync matches YEN's screen updates to your monitor's refresh rate (how often it can show new images). Think of it like two dancers moving in perfect sync — when they're aligned, everything looks smooth. Without VSync, you might see screen tearing (where part of the screen shows one frame and part shows another). Why this matters: Perfect synchronization eliminates visual distractions like screen tearing. When everything is perfectly smooth, your brain doesn't have to work to process visual glitches. This helps you maintain focus and reduces eye fatigue during long coding sessions.

Performance

Enable Window VSync in Settings → macOS for the smoothest scrolling experience, especially on high-refresh-rate displays.

Windows, Tabs & Splits

YEN windows, tabs, and splits

Organize your work with multiple windows, each containing tabs and split panes. All UI elements use native macOS components for a familiar, integrated experience.

In simple terms: Instead of having one terminal window that you have to manage, YEN lets you organize your work like a web browser — multiple windows, each with tabs, and you can split tabs to see multiple things at once. It's like having multiple monitors, but all in one app. Why this matters: Organization saves time. When you can see multiple things at once (like logs in one pane and your code editor in another), you don't waste time switching back and forth. Tabs let you keep different projects or tasks organized without losing your place. This reduces context switching and helps you maintain focus on complex tasks that require monitoring multiple things simultaneously.
  • Multiple Windows - Create as many terminal windows as you need
    Why this matters: Different projects or tasks can have their own windows, keeping things organized. No more hunting through one cluttered terminal to find what you need.
  • Tabbed Interface - Organize sessions within each window using native macOS tabs
    Why this matters: Tabs are familiar — you use them in browsers every day. When tools work the way you expect, you don't waste mental energy learning new patterns. You can focus on your work instead of figuring out how to use the tool.
  • Split Panes - Divide tabs horizontally or vertically to work with multiple sessions side-by-side
    Why this matters: Seeing multiple things at once means less switching. Watch logs while running commands. Compare outputs side-by-side. This eliminates the back-and-forth that breaks your flow and wastes time.
  • Native UI - All window controls, tabs, and splits use macOS system components
    Why this matters: When YEN looks and behaves like other Mac apps, it feels natural. You don't have to learn new behaviors — everything works the way you expect. This reduces cognitive load and helps you stay focused on your work, not the tool.

Keyboard Shortcuts

  • Cmd+T - New tab
  • Cmd+N - New window
  • Cmd+D - Split horizontal
  • Cmd+Shift+D - Split vertical
  • Cmd+W - Close tab/pane

Themes

YEN theme customization

Customize your terminal's appearance with themes. YEN supports automatic theme switching based on system dark/light mode, or you can set a fixed theme.

In simple terms: Themes control how your terminal looks — colors, brightness, transparency. YEN can automatically match your Mac's dark/light mode, or you can set it to always be dark or always be light. You can customize colors to match your preferences or reduce eye strain. Why this matters: Visual comfort directly impacts productivity. When your terminal is easy on the eyes, you can work longer without fatigue. Custom colors help you distinguish different types of information at a glance, reducing the time spent parsing text. Automatic theme switching means you don't have to manually adjust when your Mac switches between light and dark mode — one less thing to think about, keeping you focused on your work.
  • Theme Modes - Auto (follows system), Light, or Dark
    Why this matters: Automatic switching means your terminal always matches your Mac's appearance without any effort from you. This consistency reduces visual jarring and helps maintain focus.
  • Custom Colors - Set background, foreground, cursor, and selection colors
    Why this matters: Color coding helps your brain process information faster. When you can instantly distinguish different types of text by color, you read and understand code more quickly. This saves time and reduces errors.
  • Transparency - Adjust background opacity with optional blur effects
    Why this matters: Transparency lets you see what's behind your terminal, which can be helpful for referencing other windows. But more importantly, it's about visual comfort — you can adjust it to reduce eye strain during long sessions.
  • Visual Settings - All theme options accessible through the Settings GUI

Settings

Access theme settings via YEN → Settings or Cmd+,. Changes apply immediately or when opening a new window, depending on the setting.

Ligatures

YEN font ligatures

YEN correctly renders ligatures from fonts that support them. Ligatures combine multiple characters into a single glyph, making code more readable.

In simple terms: Ligatures are special characters that combine two or more letters into a single, more readable symbol. For example, instead of showing "->" as two separate characters, a ligature font might show it as a single arrow symbol →. It's like how handwriting naturally connects letters — ligatures make code symbols flow together visually. Why this matters: When symbols are easier to read at a glance, you spend less mental energy parsing code. Common patterns like "!=" (not equal) or "=>" (arrow function) become instantly recognizable symbols instead of character combinations you have to decode. This reduces cognitive load, helping you read code faster and catch errors more quickly — saving time and reducing mistakes.
  • Font Support - Works with any font that includes ligatures (e.g., Fira Code, JetBrains Mono)
  • Automatic Rendering - Ligatures render correctly without additional configuration
  • Font Features - Supports font-specific features and variants

Recommended Fonts

Popular ligature-enabled fonts include Fira Code, JetBrains Mono, and Source Code Pro. Install any monospace font and select it in Settings → Fonts.

Grapheme Clustering

YEN grapheme clustering

YEN correctly handles complex Unicode characters, including multi-codepoint emoji and right-to-left scripts.

In simple terms: A grapheme is what you think of as a single character — like the letter "A" or an emoji. But some characters are actually made up of multiple pieces behind the scenes. For example, an emoji with a skin tone modifier is technically two pieces of data that should display as one character. Grapheme clustering is YEN's ability to correctly group these pieces together so they display as intended. Why this matters: When characters display correctly the first time, you don't waste time trying to figure out what broken text means. This is especially important when working with international teams or code that includes emoji. Correct character rendering prevents confusion and miscommunication, saving time and preventing errors.
  • Emoji Support - Flags, skin tones, and other multi-codepoint emoji render as single characters
  • Right-to-Left Scripts - Individual grapheme clusters in Arabic and Hebrew render correctly
  • Unicode Compliance - Follows Unicode standards for proper character rendering

macOS Features

YEN is built specifically for macOS, using native components and platform features to provide an idiomatic experience.

Quick Terminal

YEN Quick Terminal feature

Quick Terminal is a lightweight dropdown terminal that animates down from below the menu bar for instant access without interrupting your workflow.

In simple terms: Quick Terminal is like a command prompt that slides down from the top of your screen when you press a keyboard shortcut. It's always available, no matter what app you're using. Think of it like Spotlight search, but for terminal commands. Why this matters: Context switching — moving between apps — kills productivity. Every time you switch apps, your brain has to reorient itself. Quick Terminal lets you run commands without leaving what you're doing. Need to check a git status while writing code? Quick Terminal. Want to quickly search files while browsing? Quick Terminal. This saves seconds that add up to hours over time, and keeps you in flow state instead of breaking your concentration.
  • Global Hotkey - Access from any application via keyboard shortcut
    Why this matters: No mouse needed, no app switching. Your hands stay on the keyboard, maintaining your typing rhythm and focus.
  • Non-Intrusive - Appears and disappears smoothly without disrupting your current work
    Why this matters: When tools don't interrupt your flow, you can use them without breaking concentration. Smooth animations feel natural, not jarring.
  • Configurable Position - Set position to Top, Bottom, Left, or Right in Settings → macOS
  • Instant Access - Perfect for quick commands without switching applications
    Why this matters: Instant means zero wait time. When you need information, you get it immediately. This eliminates the frustration of waiting and keeps your momentum going.

Setup

Set a keyboard shortcut in System Settings → Keyboard → Shortcuts → App Shortcuts to toggle Quick Terminal from any app. The shortcut can be customized to your preference.

Native UI Components

YEN native macOS UI components

YEN uses native macOS UI components for tabs, splits, and window controls, ensuring it looks and feels like a purpose-built macOS application.

In simple terms: "Native" means YEN uses the same building blocks that Apple uses for macOS apps. Instead of creating custom buttons and controls that look different, YEN uses the same tabs, buttons, and window decorations that you see in Safari, Mail, and other Mac apps. Why this matters: Familiarity saves mental energy. When everything works exactly like other Mac apps, you don't waste time figuring out how to use it. Your brain recognizes patterns instantly, so you can focus on your work instead of learning a new interface. This consistency reduces cognitive load and helps you stay in flow state. Plus, native components are optimized by Apple for performance and accessibility, so everything feels smooth and responsive.
  • Native Tabs - macOS system tabs for consistent appearance and behavior
  • Native Splits - System split view components
  • Window Controls - Standard macOS window buttons and decorations
  • System Integration - Follows macOS design guidelines and accessibility standards
    Why this matters: Accessibility features like VoiceOver, keyboard navigation, and high contrast modes work automatically because YEN uses standard macOS components. This means YEN is usable by everyone, and you get these features without any extra setup.

Proxy Icon

YEN proxy icon feature

The proxy icon in the title bar provides quick access to the current working directory and file operations.

In simple terms: The proxy icon is the small folder icon that appears in the title bar of your terminal window. It represents the folder you're currently working in. You can click it, drag it, or right-click it to do things with that folder. Why this matters: Instead of typing long file paths or navigating through Finder manually, you can instantly jump to your current folder with one click. Drag the icon to move files, or right-click for quick actions. This eliminates the time spent typing paths or switching between apps to navigate. One click saves seconds, and those seconds add up throughout your day.
  • Drag & Drop - Drag the proxy icon to move or access terminal session files
    Why this matters: Drag-and-drop is faster than typing paths. Move files, open folders, or share locations instantly without leaving your keyboard flow.
  • Path Navigation - Click to navigate to the file path directly in Finder
    Why this matters: One click opens Finder to your exact location. No typing, no guessing paths, no navigation errors. Instant access saves time and reduces frustration.
  • Context Menu - Right-click for additional file operations

Quick Look

YEN Quick Look integration

Use macOS Quick Look directly from the terminal for definitions, web searches, and more.

In simple terms: Quick Look is a macOS feature that lets you preview things instantly — like pressing spacebar on a file in Finder to see its contents. In YEN, you can use Quick Look on text to get definitions, look things up on the web, or see previews without leaving your terminal. Why this matters: Context switching kills productivity. When you encounter an unfamiliar term or need to look something up, you don't have to leave your terminal, open a browser, search, read, then come back. Quick Look gives you instant answers right where you are. This keeps you in flow state and saves the time it takes to switch apps and reorient yourself. Less interruption means better focus and faster work.
  • Three-Finger Tap - Tap text with three fingers to trigger Quick Look
    Why this matters: A simple gesture gives you instant information. No keyboard shortcuts to remember, no menus to navigate. Natural, fast, and keeps your hands in place.
  • Force Touch - Use Force Touch on supported Macs
  • Dictionary Lookup - Get definitions instantly
    Why this matters: Understanding code or documentation faster means less time spent confused. Instant definitions help you learn and work more efficiently.
  • Web Search - Quick access to web search results
    Why this matters: Quick answers without leaving your terminal. Look up error messages, check documentation, or verify information instantly. This eliminates the context switch that breaks your flow.

Secure Keyboard Entry

YEN secure keyboard entry

Protect your passwords from other processes with secure keyboard entry. YEN can automatically detect password prompts or you can enable it manually.

In simple terms: Normally, when you type on your Mac, other programs can potentially see what you're typing (with your permission, through accessibility features). Secure keyboard entry is a macOS feature that blocks all other programs from seeing your keystrokes. YEN can automatically turn this on when it detects you're typing a password, or you can enable it manually. Why this matters: Security aside, this feature gives you peace of mind. When you see the lock icon, you know your password is protected. This reduces anxiety and lets you focus on your work instead of worrying about security. Less worry means better focus and productivity.
  • Automatic Detection - Detects password prompts and enables secure entry automatically
    Why this matters: You don't have to remember to enable security — YEN does it for you. This eliminates a step from your workflow, saving mental energy for the tasks that matter.
  • Manual Activation - Enable secure keyboard entry manually when needed
  • Visual Indicator - Animated lock icon appears in the top-right corner when active
    Why this matters: Clear visual feedback means you always know when you're protected. No guessing, no uncertainty. This reduces cognitive load and helps you stay focused.
  • Process Protection - Prevents other processes from intercepting keystrokes

Security

When secure keyboard entry is active, an animated lock icon appears in the top-right corner of the terminal window. This indicates that your keystrokes are protected from other processes.

Shell Integration

YEN can automatically integrate with your shell to provide enhanced productivity features. Shell integration works with bash, zsh, fish, and elvish.

Features

YEN shell integration features

Shell integration enables several productivity enhancements:

In simple terms: Your shell (like bash or zsh) is the command-line interface that runs inside YEN. Shell integration is like giving YEN and your shell a shared language so they can work together better. Without it, YEN is just displaying text. With it, YEN understands what's happening — where you are, what command you ran, where the output starts and ends. Why this matters: When YEN understands your shell, it can help you work faster. It knows when you're typing a command vs. reading output, so it can prevent accidents (like closing a window when you're mid-command). It can help you navigate faster, select text smarter, and generally make everything feel more responsive. These small improvements add up to significant time savings and fewer frustrating mistakes.
  • Smart Close Confirmation - Prevents accidental window closure when cursor is at a prompt
    Why this matters: Ever accidentally closed a terminal window and lost your place? This prevents that frustration. When you're actively working (typing at a prompt), YEN knows you're not done and warns you before closing. This saves time by preventing mistakes and the frustration of having to restart your work.
  • Working Directory Tracking - New terminals start in the working directory of the previously focused terminal
    Why this matters: When you open a new terminal tab, it starts where you left off, not in your home folder. No more typing long paths or navigating back to where you were working. This eliminates repetitive navigation, saving seconds every time you open a new terminal — which adds up to minutes saved daily.
  • Prompt Resizing - Complex prompts resize correctly by allowing the shell to redraw rather than reflow
    Why this matters: When you resize a terminal window, complex prompts (like those showing git branch info or long paths) redraw correctly instead of breaking or wrapping awkwardly. This means you can resize windows without losing information or having to restart commands. Less frustration, more flexibility.
  • Command Output Selection - Triple-click while holding Command to select the output of a command
    Why this matters: Selecting text in terminals is usually frustrating — you have to carefully drag to select just the output, avoiding the command itself. This feature lets you select entire command outputs with one gesture. Copy-paste becomes instant instead of a careful manual process, saving time when you need to use command output elsewhere.
  • Prompt Cursor Style - Cursor at the prompt changes to a bar for more typical text editing appearance
    Why this matters: Small visual cues help your brain understand context faster. When the cursor looks like a text editor cursor (bar) at the prompt, you instantly know you're in "typing mode" vs. "reading mode". This reduces cognitive load and helps you focus on the task at hand.
  • Jump to Prompt - Use the jump_to_prompt keybinding to scroll forward and back through prompts
    Why this matters: When you have lots of command output, finding where you last typed can be tedious. This feature lets you jump between prompts instantly — like bookmarks in your terminal history. No more scrolling through pages of output to find your last command. This saves time and keeps you oriented in long terminal sessions.
  • Alt+Click Navigation - Option+click moves the cursor to the click location while at a prompt
    Why this matters: Sometimes you need to fix a typo in the middle of a long command. Instead of backspacing through everything, you can click where you want to edit and start typing. This is faster than arrow-key navigation for long commands, saving time and reducing frustration.
  • sudo Wrapping - Automatically wrap sudo to preserve terminal capabilities (disabled by default)
  • ssh Wrapping - Automatically wrap ssh to transmit terminal capabilities or set TERM to xterm-256color for maximum compatibility (disabled by default)

Automatic Injection

YEN automatic shell integration

YEN automatically injects shell integration code for bash, zsh, fish, and elvish when you start a new terminal session.

In simple terms: "Injection" sounds technical, but it just means YEN automatically adds some helper code to your shell when it starts. This code helps YEN understand what's happening in your terminal. You don't have to do anything — YEN detects your shell and sets everything up automatically. Why this matters: Zero setup means zero time wasted on configuration. You get all the productivity features immediately without reading documentation or editing config files. This eliminates the friction that prevents people from using powerful features. Less setup time means more time for actual work.

macOS Bash

The version of Bash distributed with macOS (/bin/bash) does not support automatic shell integration. You'll need to manually source the shell integration script or install a standard version of Bash from Homebrew.

YEN detects your shell using a simple string match on the basename of the command. If you're using a supported shell with a different name, you can force shell integration by setting the shell-integration configuration option in your config file.

Force shell integration
# Force shell integration for a custom shell name
shell-integration = fish

To disable automatic shell integration:

Disable shell integration
# Disable shell integration
shell-integration = none

Verifying Shell Integration

To verify shell integration is working, launch YEN from Terminal and look for log lines indicating successful injection:

Successful shell integration logs
info(io_exec): using YEN resources dir from env var: /Applications/YEN.app/Contents/Resources
info(io_exec): shell integration automatically injected shell=fish

If you see messages about terminfo not found or shell detection failure, check that the YEN_RESOURCES_DIR environment variable is set correctly. This variable is automatically set by YEN when it starts.

Manual Setup

YEN manual shell integration setup

Shell integration can also be manually sourced in your shell configuration. This ensures that shell integration works in more scenarios, such as when you switch shells within YEN.

In simple terms: Most of the time, YEN sets up shell integration automatically. But if you switch shells inside YEN (like running bash inside a zsh session), or if you have a custom setup, you can manually add the integration code to your shell's config file. This ensures features work in all situations. Why this matters: Flexibility means YEN works with your workflow, not against it. Whether you use standard shells or custom setups, you can still get all the productivity features. This prevents frustration and ensures you can work the way you want without losing functionality.

YEN automatically sets the YEN_RESOURCES_DIR environment variable when it starts, so you can use this to detect when your shell is launched within YEN and to find the shell-integration scripts.

Shell Configuration Examples

Bash (~/.bashrc):

Bash shell integration
# YEN shell integration for Bash. This should be at the top of your bashrc!
if [ -n "\$\{YEN_RESOURCES_DIR\}" ]; then
    builtin source "\$\{YEN_RESOURCES_DIR\}/shell-integration/bash/yen.bash"
fi

Zsh (~/.zshrc):

Zsh shell integration
# YEN shell integration for Zsh
if [ -n "\$\{YEN_RESOURCES_DIR\}" ]; then
    source "\$\{YEN_RESOURCES_DIR\}/shell-integration/zsh/yen-integration"
fi

Fish (~/.config/fish/config.fish):

Fish shell integration
# YEN shell integration for Fish
if test -n "$YEN_RESOURCES_DIR"
    source "$YEN_RESOURCES_DIR/shell-integration/fish/vendor_conf.d/yen-shell-integration.fish"
end

Switching Shells

Automatic shell integration only works for the initially launched shell when YEN starts. If you switch shells within YEN (e.g., run bash or use nix-shell), manually sourcing the shell integration ensures features continue to work.