On your Mac, in ~/.config/clippal (the history database sits there next to the log). There is no server, no account, and no sync. Nothing about your clips is sent anywhere — the only network requests clippal makes are fetching a link preview for a URL you copied, and checking whether a new version exists.
Password-manager entries, which mark themselves concealed; clipboard writes apps flag as transient; anything typed into a secure-input field, such as a password or sudo prompt; and clippal's own windows. The secure-input and own-app rules are absolute — no setting and no blocklist entry can switch them off. Settings → General also has “Skip concealed items (passwords)” and “Skip transient items,” both on by default.
Settings → Privacy → Blocking → “Block completely.” Type an app's name, a website, or a pattern and press ⏎. Exact matches (instagram.com), wildcards (*insta*) and /regex/ all work, and rules are matched against app names as well as URLs. A rule here blocks everything for that app or site: clipboard, typed capture and suggestions.
Yes — the Privacy pane's tabs are the tiers. “Keystrokes → Don't record typing here” stops typed capture while clipboard and suggestions keep working. “Suggestions → Don't suggest here” stands trigger expansion and inline predictions down while capture keeps working; code editors ship on this list. A rule in “Block completely” implies both.
Settings → Privacy → Blocking → Special contexts. In private/incognito windows, clipboard capture stays on by default while typed capture and suggestions are off; each is a separate toggle. “Don't record typed text in terminals” covers Terminal, iTerm2, Ghostty, Warp, Alacritty and kitty in one switch — terminals keep clipboard capture, because you copy out of them constantly, but their typing holds commands and secrets.
Turn on Settings → Privacy → Blocking → Website matching → “Detect the current website in browsers,” which lets a rule like instagram.com apply while you type rather than only when a URL passes through the clipboard. “Use AppleScript for exact URLs” makes it precise, at the cost of macOS asking once whether clippal may control your browser; with it off, clippal reads what the accessibility API gives it and never prompts. The log records once per app that website blocking is live, so you can confirm it rather than infer it.
It's under Settings → Privacy → Keystrokes → “Capture typed text,” and it's off until you turn it on. Be deliberate: it records sentences you type system-wide so they're searchable later, which is effectively a keylogger on your own machine. The gates in that pane are there to be used first — a minimum sentence length, an entropy ceiling that skips things that look like keys or passwords, the per-app and per-site exclusions, the terminal switch, and the sensitive-content filter.
Settings → Privacy → Keystrokes → “Forget all typed text…” deletes every captured sentence from the local database and tells you how many went. Typed sentences you'd bookmarked, tagged or given a shortcut are kept — you'd turned those into notes.
Settings → Privacy → Filters & Sources → “Sensitive content filter.” Anything matching one of your patterns is dropped before it's written, whether it was typed or copied, and you can apply it to typed text, clipboard items, or both. Patterns are one per line in Python regex syntax — useful for things an app blocklist can't catch, like an email address you type into Notes.
Only if you let it, and only for command names: Settings → Privacy → Filters & Sources → “Learn command names from shell history” reads ~/.zsh_history or ~/.bash_history once at launch and keeps the names of commands so your own CLI tools are recognised as runnable in the trigger picker. Full command lines are never kept and nothing from your history becomes a clip.