signal-history-search

Search Signal Desktop message history on macOS with sub-second query times. Queries the encrypted SQLite database directly without export overhead.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "signal-history-search" with this command: npx skills add nicolaischmid/agent-skills/nicolaischmid-agent-skills-signal-history-search

Signal History Search

Direct SQL search against Signal Desktop's encrypted database. Queries complete in under 1 second against live data.

When to use

  • You need to quote or summarize prior Signal conversations.
  • You already have Signal Desktop installed on macOS.
  • You want fast, instant search without export delays.

How it works

  1. Retrieves the encryption key from macOS Keychain (Signal Safe Storage)
  2. Decrypts the key using PBKDF2 (same as Signal Desktop)
  3. Opens the SQLite database directly with SQLCipher
  4. Runs SQL queries against messages and conversations tables
  5. No files are written; searches happen in memory

First run caches the Python environment path (~5-10s setup), subsequent runs are sub-second.

Usage

# List all available chats
signal-search list

# Dump all messages from a specific day
signal-search dump --date "2026-01-25"

# Dump a specific day's chat with one person
signal-search dump --date "2026-01-25" --chat "Dariush"

# Search within a specific chat
signal-search search --query "istanbul" --chat "Monika"

# Search with context (messages before/after matches)
signal-search search --query "flight" --chat "Monika" --context 3

# Regex search across all chats
signal-search search --query "invoice.*\d{4}"

# Literal string search (not regex)
signal-search search --query "100$" --literal

# Case-sensitive search
signal-search search --query "API" --case-sensitive

# Limit number of results
signal-search search --query "meeting" --max-count 10

Commands

CommandDescription
listList all available chats (name and type)
dumpDump all messages from a specific day
searchSearch messages

Dump Flags

FlagShortDescription
--date <YYYY-MM-DD>-dDate to dump (required)
--chat <name>-cFilter to chats containing this string

Search Flags

FlagShortDescription
--query <pattern>-qSearch pattern (regex by default)
--chat <name>-cFilter to chats containing this string
--context <n>-CShow N messages before and after matches
--max-count <n>-mStop after N matches
--case-sensitive-sCase-sensitive search (default: smart-case)
--literal-FTreat query as literal string, not regex

Output Format

> [2026-01-15 12:01:11] Monika Schmid | Monika Schmid: Habe Fluge gebucht!
  [2026-01-15 12:40:53] Monika Schmid | Me: Schon!
  • Lines starting with > are matches
  • Format: [timestamp] Chat Name | Sender: Message
  • Context lines (if requested) don't have the > prefix

Performance

OperationTime
First run (env setup)~5-10s
Subsequent searches<0.5s
Full chat search (1000s of messages)<1s

Security considerations

  • The database key is retrieved from macOS Keychain using security find-generic-password
  • No data is written to disk; all searches happen in memory
  • The cached Python path is stored in ~/.cache/signal-search/
  • Searches happen locally; nothing leaves your machine

Legacy: Export-based search

The old export-based script (signal-history-search) is still available but deprecated. It uses sigexport to create a temporary export, then searches with ripgrep. This is slower (~15-30s) but may be useful if the direct DB access fails.

# Old method (slower, requires full export)
signal-history-search search --chat "Name" --query "pattern"

Troubleshooting

  • "Failed to get keychain password": Ensure Signal Desktop has been opened at least once and you've granted keychain access
  • "Signal Desktop not found": Check that ~/Library/Application Support/Signal exists
  • First run slow: This is normal; nix-shell is setting up the Python environment with SQLCipher bindings
  • "nix-shell: command not found": Install Nix package manager

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

apple-mail-search

No summary provided by upstream source.

Repository SourceNeeds Review
Research

paperless-search

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

vercel-composition-patterns

React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.

Repository Source
86K23Kvercel
Automation

vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

Repository Source
60.3K23Kvercel