Personalization
One theme drives the whole app, not just the terminal. Pick a font with proper CJK fallback, a cursor, an app icon, and a UI language.
Moshi's appearance settings are meant to make long terminal sessions readable on different devices and lighting conditions — but they also do something most terminals don't: a single theme drives the whole app, not just the shell pane.
Themes are global
When you switch themes in Moshi, you change the terminal palette and the surrounding app chrome at the same time — sheets, buttons, settings rows, the home screen, the inbox. There is no separate "app theme" to fight with the "terminal theme."
This means a few things in practice:
- Pick Catppuccin Mocha and your Settings sheet, your inbox cards, and your terminal all share one hue.
- Pick Solarized Light and the entire app flips to a light surface set, with iOS keyboard and system bars in light mode automatically.
- Each theme has a single accent color used everywhere a primary action lives: the active toolbar pill, the focus ring on a button, the Pro badge. Dracula's purple, Nord's frost, Gruvbox's mustard yellow — that's the same color across all surfaces.
The app background sits one small elevation step away from the terminal background on purpose, so the terminal viewport reads as a distinct surface instead of dissolving into the chrome. You see the terminal as something resting on top of the app, not as the app itself.
Built-in themes
Moshi ships nine themes grouped by mode in Settings -> Theme:
- Dark: Moshi (default), Dracula, Nord, Solarized Dark, Gruvbox, Catppuccin Mocha
- Light: Solarized Light, Catppuccin Latte, GitHub Light, Rosé Pine Dawn
Some themes are Pro-only.
Light themes get extra care under the hood — the 256-color ramp used by tools like htop, btop, and Neovim status lines is inverted so light grays render dark on bright backgrounds, and reverse-video text stays readable. You should not see "invisible" status lines or selection highlights on a light theme.
Custom themes
Not limited to the built-ins: Moshi imports any terminal color scheme, and the theme gallery has 570+ ready to go — every palette from the iTerm2-Color-Schemes collection, previewed and packaged for one-tap import.
Three ways to get a theme into the app, all landing on the same import screen (Settings -> Theme -> Import theme):
- QR code — scan a theme's QR code from the gallery with the import screen's camera (or the system camera).
- Clipboard — copy the theme on getmoshi.app, then paste it into the import screen. The copied string looks like
moshi-theme:eyJ2IjoxLCJuYW1l…. - Deep link — on your phone, tap "Open in Moshi" on a theme page;
moshi://themelinks open the import screen directly.
Imported themes behave exactly like built-ins: the palette drives the terminal and the derived app chrome, and light-mode imports get the same inverted 256-color ramp treatment.
Hand-authoring a theme
The import screen also accepts raw JSON pasted from the clipboard, so you can write a theme by hand. The format (v1):
{
"v": 1,
"name": "My Theme",
"mode": "dark",
"colors": {
"background": "#1a1b26",
"foreground": "#c0caf5",
"cursor": "#c0caf5",
"black": "#15161e",
"red": "#f7768e",
"green": "#9ece6a",
"yellow": "#e0af68",
"blue": "#7aa2f7",
"magenta": "#bb9af7",
"cyan": "#7dcfff",
"white": "#a9b1d6",
"brightBlack": "#414868",
"brightRed": "#f7768e",
"brightGreen": "#9ece6a",
"brightYellow": "#e0af68",
"brightBlue": "#7aa2f7",
"brightMagenta": "#bb9af7",
"brightCyan": "#7dcfff",
"brightWhite": "#c0caf5",
"selectionBackground": "#33467c"
}
}
The rules:
vmust be1.nameis required (up to 40 characters).modeis required and must be"dark"or"light"— Moshi deliberately never guesses dark/light from the colors, so say which one you mean.colors.backgroundandcolors.foregroundare required. Everything else is optional with sensible fallbacks: a missing bright color falls back to its base color, a missing base color to the foreground, and a missingcursororselectionBackgroundis derived for you.- All colors are hex (
#rrggbbor#rgb).
Every gallery theme is also available as plain JSON at getmoshi.app/themes/<slug>.json — a good starting point to copy and tweak.
Fonts
Open Terminal Fonts to pick the terminal font and font size.
The default is JetBrains Mono, embedded in the app. Three additional Latin monospace fonts are available as on-demand downloads:
- Iosevka — narrow, programming-oriented, slab-serif
i/ldistinction. - Ioskeley — Iosevka derivative with a stronger personality and wider glyphs.
- DejaVu Sans Mono — wide, classic, generous spacing.
On-demand fonts download the first time you select them and stay on the device until you delete them.
CJK fonts
Picking a CJK font in Moshi works differently from picking a Latin one. CJK fonts here are glyph fallbacks, not primary fonts.
When you select Noto Sans Mono CJK JP, SC, TC, or KR:
- ASCII / Latin characters keep rendering in the default monospace face — your code, file paths, and prompt symbols still look like a code font.
- Japanese, Chinese, or Korean characters in the same line are filled in by the chosen CJK font.
- Glyphs stay vertically aligned with the Latin grid so a mixed-language line of, say, code with Japanese comments doesn't fight itself.
The four CJK options correspond to:
- Noto Sans JP — Japanese.
- Noto Sans SC — Simplified Chinese.
- Noto Sans TC — Traditional Chinese.
- Noto Sans KR — Korean.
Pick the one that matches the language you most often see in tmux, your shell prompt, or your git log output. They are large fonts, so they download on demand and can be deleted when no longer needed.
If you primarily work in English with the occasional Japanese filename, you do not need a CJK font enabled — iOS will fall back to a system CJK face. The CJK options here are for users who regularly read CJK content in the terminal and want consistent, properly-spaced glyphs.
Cursor
Cursor style can be:
- Block.
- Underline.
- Bar.
Cursor blinking can be turned on or off separately.
Glass effect
The glass effect changes the terminal background treatment. Turn it off if you prefer a flatter terminal surface or want maximum contrast.
App icon
Alternate app icons are available from Settings. Some icons are Pro features.
Language
The app language can follow the system automatically or be pinned to a supported locale. This is the UI language only — terminal output is whatever your shell and tools produce on the host.
Active sessions layout
Moshi stores a preference for active session layout. Depending on device and app state, sessions can be presented as cards or a denser list. Use the layout that makes switching fastest for your workflow.