Useful Mac Apps

From My Downloads Folder

Monday, January 6, 2025
Updated Monday, October 26, 2026

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.