TOC
I went through my Downloads folder and decided to share a list of useful Mac applications I’ve installed. Many of them can be installed via Homebrew.
Installing Homebrew
If you don’t have Homebrew yet, install it:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Productivity & Utilities
Rectangle - window management with keyboard shortcuts
brew install --cask rectangle
Karabiner-Elements - powerful keyboard customization utility
brew install --cask karabiner-elements
AlDente - battery charge control to preserve battery health
brew install --cask aldente
Syncthing - file synchronization between devices without cloud
brew install --cask syncthing
HiddenBar - hide menu bar icons
brew install --cask hiddenbar
Maccy - clipboard manager
brew install --cask maccy
Raycast - powerful Spotlight replacement with extensions
brew install --cask raycast
CLDownloader - file downloader with torrent support
boringNotch - useful features for Dynamic Island on MacBook Pro
brew install --cask boringnotch
Usage - system resource usage monitoring
brew install --cask usage
Communication & AI
Slack - corporate messenger
brew install --cask slack
Spark - smart email client
brew install --cask spark
ChatGPT - desktop client for ChatGPT
brew install --cask chatgpt
Claude - desktop client for Claude AI
brew install --cask claude
Notion - notes and project organization
brew install --cask notion
Simplenote - minimalist note-taking app with sync
brew install --cask simplenote
Development
kitty - fast GPU-based terminal; my main one now. Tabs, splits, sessions and everything else are set in plain-text files in ~/.config/kitty
brew install --cask kitty
brew install --cask font-jetbrains-mono-nerd-font # the font in the config below
My ~/.config/kitty/kitty.conf:
# Font
font_family family="JetBrainsMono Nerd Font Mono"
bold_font auto
italic_font auto
bold_italic_font auto
font_size 15.0
modify_font cell_height 110%
text_composition_strategy 1.3 30
# Colours live in dark-theme.auto.conf and light-theme.auto.conf;
# kitty switches between them with the macOS appearance.
# Window
window_padding_width 8
macos_option_as_alt yes
confirm_os_window_close -1
copy_on_select clipboard
# F5 saves the open tabs and layout as a session. kitty asks for a path:
# use ~/.config/kitty/session.kitty. The program that runs in each window is
# saved too and starts again on launch, so do not press F5 during rm or mv.
map f5 save_as_session --use-foreground-process --relocatable
# Uncomment after the first F5, when the file exists.
# startup_session session.kitty
# Cmd+arrow: start / end of line. Alt+arrow: previous / next word.
# The Alt+arrow lines send Ctrl+arrow codes, which oh-my-zsh binds to word moves;
# a stock shell needs \x1bb and \x1bf instead.
map cmd+left send_text all \x1b[H
map cmd+right send_text all \x1b[F
map alt+left send_text all \x1b[1;5D
map alt+right send_text all \x1b[1;5C
# Shift+Enter sends a newline (Ctrl+J): Claude Code starts a new line
# instead of submitting, also over ssh inside tmux.
map shift+enter send_text all \n
# Ctrl+click opens a link even when the program grabs the mouse (tmux with mouse on).
mouse_map ctrl+left press grabbed discard_event
mouse_map ctrl+left release grabbed,ungrabbed mouse_handle_click link
# Tabs
tab_bar_edge top
tab_bar_style powerline
tab_powerline_style slanted
active_tab_font_style bold
inactive_tab_font_style normal
# No sound. A tab whose program rang the bell gets a ◆ in front of its title.
enable_audio_bell no
bell_on_tab "◆ "
tab_title_template "{bell_symbol}{title}"
# Cmd+Shift+T: pick a tab from a list, tabs that rang the bell first (pick_tab.py below)
map cmd+shift+t kitten pick_tab.py
map cmd+t launch --type=tab --cwd=current --location=after
map cmd+enter new_window_with_cwd
map cmd+n new_os_window_with_cwd
map cmd+w close_window_with_confirmation ignore-shell
map cmd+1 goto_tab 1
map cmd+2 goto_tab 2
map cmd+3 goto_tab 3
map cmd+4 goto_tab 4
map cmd+5 goto_tab 5
map cmd+6 goto_tab 6
map cmd+7 goto_tab 7
map cmd+8 goto_tab 8
map cmd+9 goto_tab 9
The colours switch with the macOS appearance: kitty reads dark-theme.auto.conf or light-theme.auto.conf from the same folder. kitten themes lets you pick a theme and write it to either file. I use Solarized Dark Higher Contrast and Selenized Light.
~/.config/kitty/pick_tab.py, the tab picker for Cmd+Shift+T. It lists the tabs of every kitty window and switches to the one you choose:
# Cmd+Shift+T: kitty's tab picker with the tab bar's ◆ marker. Tabs that rang
# the bell are listed first. Tabs from every OS window are listed.
from kittens.tui.handler import result_handler
def main(args):
pass
@result_handler(no_ui=True)
def handle_result(args, answer, target_window_id, boss):
def waiting(tab):
return any(w.needs_attention for w in tab)
def label(tab):
return ('◆ ' if waiting(tab) else ' ') + (tab.name or tab.title)
def chosen(ans):
if not isinstance(ans, int):
return
for tab in boss.all_tabs:
if tab.id == ans:
# boss.set_active_tab() only searches the active OS window,
# so switch through the tab's own manager and focus its window.
# TabManager.set_active_tab() returns None, so its result is not checked.
manager = tab.tab_manager_ref()
if manager is not None:
manager.set_active_tab(tab)
boss.focus_os_window(tab.os_window_id)
return
w = boss.window_id_map.get(target_window_id)
current = w.tabref() if w else None
tabs = sorted(boss.all_tabs, key=lambda t: not waiting(t))
boss.choose_entry(
'Choose a tab (◆ = rang the bell)',
((None, f'{label(t)} (current)') if t is current else (t.id, label(t)) for t in tabs),
chosen,
)
Warp - modern terminal with AI features
brew install --cask warp
Windsurf - IDE from Codeium with built-in AI
brew install --cask windsurf
VSCodium - free version of VS Code without Microsoft telemetry
brew install --cask vscodium
Ollama - run local LLM models
brew install ollama
Network & Security
Tailscale - simple VPN based on WireGuard
brew install --cask tailscale
NordVPN - popular VPN service
brew install --cask nordvpn
Media
IINA - modern video player for macOS
brew install --cask iina
Firefox - alternative web browser
brew install --cask firefox
Quick Install All Apps
You can install all these apps at once:
brew install --cask rectangle karabiner-elements aldente syncthing \
hiddenbar maccy raycast boringnotch usage slack spark chatgpt \
claude notion simplenote kitty warp windsurf vscodium tailscale \
nordvpn iina firefox
brew install ollama
I actively use or test all these applications. Most of them are free or have free versions. I especially recommend Rectangle for window management, Raycast as a Spotlight replacement, and IINA as a replacement for the default player.
