Agent skill

Traul Message Search

by dandaka in dandaka/traul

Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.

AGPL-3.0Auto-check: notesProductivity & Automation

Install Traul Message Search

skills CLI
$ npx skills add dandaka/traul --skill traul -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dandaka/traul traul --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
traul
GitHub stars
113
Token cost
~3.9k tokens
SKILL.md length
1,443 words
Files
83 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files.

  • Works in 3 steps: Signals — up to 10 active signals with… → Stats — total messages, channels,… → Volume — last 7 days message bar chart
  • Syncing new messages from Slack, Telegram or Gmail into the local index
  • SKILL.md covers CLI Commands, JSON Output Fields, Connectors and Signals System, plus 4 more sections
  • Runs Python and TypeScript scripts from its folder; needs SLACK_BOT_TOKEN and SLACK_USER_TOKEN

What it does

Traul is a command-line personal intelligence engine that indexes communication streams into a local searchable database, and this skill documents its commands for the agent. Sync pulls new messages incrementally from Slack, Telegram, Discord, Linear, Gmail, Claude Code sessions, Markdown files or WhatsApp using cursors, and reports messages added and contacts found per source. The runtime is Bun with TypeScript and a SQLite database with full-text and vector search.

Search is hybrid by default, combining semantic similarity with keyword matching through rank fusion and falling back to keyword-only when embeddings are unavailable. Embeddings come from a local model that downloads on first use, with Ollama as a fallback. Flags switch to keyword-only, OR matching or a plain substring search for phrases that tokenization breaks. Other commands cover signals that detect patterns, briefings and browsing chat history.

When your agent uses it

  • Syncing new messages from Slack, Telegram or Gmail into the local index
  • Searching past conversations by meaning or keyword across sources
  • Browsing chat history or generating a briefing from indexed messages

Example prompts

  • “Sync Slack and Gmail with traul, then search for the vendor pricing thread.”
  • “Search my messages for deployment rollback using OR mode.”
  • “Show recent signals traul has detected across my channels.”

Requirements

  • The traul CLI, which runs on Bun with TypeScript
  • Pre-approved tools (allowed-tools): Bash, Read, Edit, Write, Glob, Grep

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Signals — up to 10 active signals with severity/detail
  2. Stats — total messages, channels, contacts, active signals
  3. Volume — last 7 days message bar chart

What it can do on your machine

Read from SKILL.md and the folder at commit 4de8dc8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Edit
    • Write
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python and TypeScript, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SLACK_BOT_TOKEN
    • SLACK_USER_TOKEN
    • LINEAR_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Traul Message Search loads about 3.9k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 1,443 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~73
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Edit, Write, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from dandaka/traul at commit 4de8dc8, republished under its AGPL-3.0 licence (© dandaka). 1,443 words, ~3,912 tokens.

Download SKILL.mdSave it as .claude/skills/traul/SKILL.md (or your agent's skills folder). This skill also uses 82 other files; get the full folder from GitHub.
name
traul
description
Personal Intelligence Engine CLI for syncing, searching, and monitoring messages from Slack, Telegram, Discord, Linear, Gmail, Claude Code sessions, Markdown files, and WhatsApp. Use when working with traul commands, message sync, search, signals, briefings, or browsing chat history.
allowed-tools
Bash, Read, Edit, Write, Glob, Grep

Traul — Personal Intelligence Engine

CLI tool that watches communication streams (Slack, Telegram, Discord, Linear, Gmail, Claude Code sessions, Markdown files, WhatsApp), indexes messages, detects patterns via signals, and surfaces actionable insights.

Runtime: Bun + TypeScript | DB: SQLite (WAL mode, FTS5, sqlite-vec) | Embeddings: node-llama-cpp (Qwen3-Embedding-0.6B), Ollama fallback | Version: 0.2.0

Project: /Users/dandaka/projects/traul


CLI Commands

traul sync [source]

Sync messages from communication sources incrementally.

ArgumentDescription
sourceOptional. slack, telegram, discord, linear, gmail, claudecode, markdown, or whatsapp. Omit to sync all.
  • Uses cursor-based incremental sync (only fetches new messages)
  • Slack: syncs channels + thread replies, caches user profiles, stores reactions/reply_count in metadata
  • Telegram: syncs via tg.py (Telethon), 1-hour cooldown skip per chat, progress reporting every 10s
  • Claude Code: reads all JSONL sessions from ~/.claude/projects/, extracts user+assistant messages
  • Markdown: walks configured dirs for .md files, tracks changes by content hash
  • Reports messages added + contacts discovered per source
traul search <query>

Hybrid search combining vector similarity (semantic) and FTS5 keyword matching with Reciprocal Rank Fusion. Falls back to FTS-only if embedding is unavailable.

Search modes:

  • Hybrid (default) — best for multi-word and exploratory queries. Finds semantically related messages even when exact keywords don't appear. Uses node-llama-cpp with Qwen3-Embedding-0.6B (auto-downloads ~639MB model on first use). Falls back to Ollama, then FTS-only. Prints coverage ratio to stderr (e.g. 88% vector, 12% FTS).
  • FTS-only (--fts) — keyword matching with BM25 ranking. Faster, but requires ALL terms to match (implicit AND). Brittle with multi-word queries, especially combined with source/channel filters.
  • OR mode (--or) — joins search terms with OR instead of AND. Works with both --fts and hybrid. Use for broad exploratory queries where any term is relevant.
  • Substring (--like) — bypasses FTS entirely, uses SQL LIKE. Useful for exact phrases that FTS tokenization breaks (e.g. "how do I").

Tip: Prefer hybrid (default) for broad queries like "metrics mixpanel registration". Use --fts --or for exploratory keyword searches matching ANY term. Use --like for exact phrase matching.

OptionDescription
-s, --source <source>Filter by source
-c, --channel <channel>Filter by channel name
-a, --after <date>Messages after ISO date (aliases: --from, --start)
-b, --before <date>Messages before ISO date (aliases: --to, --end)
-l, --limit <n>Max results (default: 20)
--jsonOutput as JSON
--ftsKeyword-only search (skip vector search)
--orJoin terms with OR instead of AND (works with --fts and hybrid)
--likeSubstring match (LIKE) — bypasses FTS, useful for exact phrases
traul get [thread-id]

Retrieve a full conversation thread by its thread ID, or list all threads from a given date. Search results display thread IDs in the output so you can copy them for use with get.

OptionDescription
thread-id (positional)Thread ID (e.g. Claude Code session UUID)
-d, --date <date>Get all threads from a date (ISO 8601)
--jsonOutput as JSON
bash
# Search shows thread IDs in results
traul search "mixpanel metrics"
# → 2026-03-10 13:06  #base  claude  [thread:abc-123-uuid]: Let me try...

# Get full conversation by thread ID
traul get abc-123-session-uuid

# List all threads from a specific date
traul get --date 2026-03-10

# JSON output
traul get abc-123-session-uuid --json
traul messages [channel]

Browse messages chronologically (no FTS required).

OptionDescription
channel (positional)Exact channel name match
-c, --channel <name>Substring match on channel name
-a, --author <name>Filter by author name (substring)
-s, --source <source>Filter by source
--after <date>Messages after ISO date (alias: --from)
--before <date>Messages before ISO date (alias: --to)
-l, --limit <n>Max results (default: 50)
--jsonOutput as JSON
--ascOldest first (default: newest first)
traul channels

List known channels with message counts and last activity.

OptionDescription
-s, --source <source>Filter by source
--search <term>Substring search in channel name
--jsonOutput as JSON
traul sql <query>

Execute arbitrary read-only SQL against the database. Only SELECT, PRAGMA, WITH, and EXPLAIN queries are allowed by default.

OptionDescription
--jsonOutput as JSON (default)
--writeAllow write operations (INSERT, UPDATE, DELETE, etc.)
bash
# Ad-hoc analytics
traul sql "SELECT source, COUNT(*) as cnt FROM messages GROUP BY source"

# Check sync cursors
traul sql "SELECT * FROM sync_cursors WHERE source='gmail'"

# Modify data (requires --write flag)
traul sql "UPDATE messages SET channel_name='renamed' WHERE channel_name='old'" --write
traul schema

Show database tables with column names, types, and constraints. Excludes FTS shadow tables.

OptionDescription
--jsonOutput as JSON
traul signals

View active signal results (not dismissed), ordered by severity then date.

OptionDescription
--jsonOutput as JSON
traul signals run

Evaluate all enabled signal definitions against the database. Seeds built-in signals automatically. Replaces :my_user_id placeholder with configured Slack user ID.

traul signals dismiss <id>

Dismiss a signal result by its numeric ID.

traul briefing

Structured overview with three sections:

  1. Signals — up to 10 active signals with severity/detail
  2. Stats — total messages, channels, contacts, active signals
  3. Volume — last 7 days message bar chart
traul reset

Reset a data layer to force regeneration. Useful when you need to re-sync, re-chunk, or re-embed data.

SubcommandDescription
traul reset sync [--source <source>]Clear sync cursors; full refetch on next sync. Optional --source flag filters to a specific connector (e.g., markdown, slack).
traul reset chunksDelete all chunks and embeddings; rechunk on next sync.
traul reset embedDrop and recreate vector tables; re-embed with traul embed.
traul reset allReset everything: sync cursors + chunks + embeddings.

Auto-migration: Traul automatically detects version changes on startup. If the chunking algorithm or embedding model/dimensions change between versions, affected data layers are reset automatically. No manual action needed after upgrading.

Global Options
OptionDescription
-v, --verboseDebug logging to stderr

JSON Output Fields

All --json outputs use clean, normalized field names (not raw SQL column names).

channels --json
FieldTypeDescription
sourcestringSource connector name
namestringChannel name
message_countnumberTotal messages in channel
last_activitystringISO 8601 timestamp of last message
Show full SKILL.md (587 more words)Show less
messages --json
FieldTypeDescription
sent_atstringISO 8601 timestamp
authorstringAuthor display name
contentstringMessage content
channelstringChannel name
sourcestringSource connector name
search --json
FieldTypeDescription
sent_atstringISO 8601 timestamp
authorstringAuthor display name
contentstringMessage content
channelstringChannel name
sourcestringSource connector name
thread_idstringThread/session ID (optional, present when available)
ranknumberSearch relevance score (optional)

Connectors

Slack
  • Auth: SLACK_BOT_TOKEN or SLACK_USER_TOKEN env var (+ optional SLACK_COOKIE_* for user tokens)
  • Config: token, cookie, my_user_id, channels[]
  • Features: Pagination (200/page), thread reply fetching, user profile caching, reaction/reply_count metadata
  • Cursors: Stored per-channel as timestamps
Telegram
  • Auth: TELEGRAM_API_ID, TELEGRAM_API_HASH env vars
  • Config: api_id, api_hash, session_path, chats[]
  • External dep: ~/.claude/skills/telegram-telethon/scripts/tg.py (Telethon)
  • Features: Auto-discover chats (limit 50), 1-hour cooldown skip, progress reporting, reaction metadata
  • Cursors: Stored per-chat
Linear
  • Auth: LINEAR_API_KEY env var for single workspace, or LINEAR_API_KEY_<NAME> for multiple workspaces (e.g. LINEAR_API_KEY_TRENDLE, LINEAR_API_KEY_AIFC)
  • Config: linear.api_key, linear.teams[], linear.workspaces[] (each with name, api_key, teams[])
  • Features: GraphQL API, paginated issue fetch (50/page), comments as thread replies, priority/status/labels in metadata, contact caching
  • Cursors: Stored per-workspace+team as <workspace>:team:<id> or <workspace>:all
  • Multi-workspace: All LINEAR_API_KEY_* env vars are auto-discovered as separate workspaces
Claude Code
  • Auth: None required (reads local files)
  • Source dir: ~/.claude/projects/ (all project subdirectories)
  • Features: Parses JSONL session transcripts, extracts user + assistant text messages, skips tool results/commands
  • Channel: Project name (derived from directory name, e.g. -Users-dandaka-projects-traul → traul)
  • Thread: Session ID (UUID)
  • Cursors: Per-session timestamp, incremental sync
Markdown
  • Auth: None required (reads local files)
  • Config: markdown.dirs[] — list of directories to scan (supports ~ expansion)
  • Features: Recursive .md file discovery, content-hash-based change detection, re-syncs on file modification
  • Channel: Parent directory path relative to configured base dir
  • Author: Filename (without .md extension)
  • Cursors: Per-file content hash (only re-indexes changed files)

Signals System

SQL-based pattern detection engine.

Signal Definition Structure
FieldDescription
nameUnique identifier
querySQL returning: message_id, severity, title, detail
severity_expression"info" (static) or "dynamic" (from query CASE)
enabledBoolean toggle
Built-in Signals

stale-threads — Detects threads you participated in with no reply for 3+ days.

SeverityCondition
urgentNo reply 14+ days
warningNo reply 7+ days
infoNo reply 3+ days

Database Schema

Location: ~/.local/share/traul/traul.db (configurable)

TablePurpose
messagesPrimary message store (source, channel, author, content, sent_at, metadata JSON)
messages_ftsFTS5 virtual table (content, author_name, channel_name) with porter tokenizer
vec_messagessqlite-vec virtual table for vector embeddings (float[1024])
contactsUnified contact directory (display_name unique)
contact_identitiesMulti-source user mapping (source + source_user_id unique)
sync_cursorsIncremental sync state per source+key
signal_definitionsSignal rules with SQL queries
signal_resultsSignal matches with severity, dismissal tracking

FTS5 is auto-synced via INSERT/UPDATE/DELETE triggers on messages.


Configuration

File: ~/.config/traul/config.json

json
{
  "sync_start": "2025-01-01",
  "database": { "path": "~/.local/share/traul/traul.db" },
  "slack": {
    "token": "",
    "cookie": "",
    "my_user_id": "",
    "channels": []
  },
  "telegram": {
    "api_id": "",
    "api_hash": "",
    "session_path": "",
    "chats": []
  },
  "linear": {
    "api_key": "",
    "teams": [],
    "workspaces": []
  },
  "markdown": {
    "dirs": ["~/projects/dn-kb"]
  }
}

ENV vars override config values. Empty channels/chats arrays = sync all.


Project Structure

src/
  index.ts                  # CLI entry (Commander.js)
  commands/                 # Command handlers
    sync.ts, search.ts, messages.ts, channels.ts, get.ts, signals.ts, briefing.ts, sql.ts
  connectors/               # Source adapters
    types.ts, slack.ts, telegram.ts, linear.ts, claude-code.ts, markdown.ts
  db/                       # Data layer
    schema.ts, database.ts, queries.ts
  lib/                      # Utilities
    config.ts, logger.ts, formatter.ts
  signals/                  # Signal engine
    types.ts, evaluator.ts, definitions/stale-threads.ts

Important: Source Discovery

Never assume a source doesn't exist just because a search returns no results. The config and connectors evolve — always verify by listing actual data:

  1. Run traul channels -s <source> to check if a source has synced data
  2. Run traul messages -s <source> -l 10 to browse recent messages from a source
  3. If both return nothing, the source may need a sync — ask the user before running it

Do NOT use traul channels --search "discord" to check if Discord is a source — that searches channel names for the word "discord", not source types.


Important: Sync Performance

traul sync is very slow — can take up to 1 hour. Do NOT run sync before operations like search, messages, signals, or briefing. Always work with the data already in the database. Only run sync when the user explicitly asks for it.


Common Workflows

bash
# Initial sync of all sources
traul sync

# Sync only Slack
traul sync slack

# Browse recent messages in a channel
traul messages "general" --limit 20

# Find channels matching a keyword
traul channels --search "dev"

# Search for a topic (results include thread IDs)
traul search "deployment issue" --after 2026-03-01

# Get a full thread/conversation
traul get <thread-id>
traul get --date 2026-03-10

# Exploratory search matching ANY term
traul search "deposit withdraw broken" --fts --or

# Exact phrase search (bypasses FTS tokenization)
traul search "how do I" --like -s discord -l 20

# Run signal evaluation and view results
traul signals run
traul signals

# Get a full briefing
traul briefing

# Dismiss a signal
traul signals dismiss 42

# Ad-hoc SQL queries (read-only by default)
traul sql "SELECT source, COUNT(*) as cnt FROM messages GROUP BY source"
traul sql "SELECT * FROM sync_cursors" --json

# Modify data with --write flag
traul sql "UPDATE messages SET channel_name='new' WHERE channel_name='old'" --write

# Explore database schema
traul schema
traul schema --json

© dandaka, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 82 other files (scripts) in the repository root of dandaka/traul.

  • SKILL.md
  • .github/workflows/ci.yml
  • .gitignore
  • CLAUDE.md
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • bun.lock
  • docker-compose.waha.yml
  • ideas/context-layer-pivot-a16z.md
  • package.json
  • scripts/tg_sync.py
  • specs/chunking-module.md
  • src/commands/channels.ts
  • … and 69 more

Open the folder on GitHubat commit 4de8dc8

Compare with similar skills

Traul Message Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Traul Message Search compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Traul Message Search this skilldandaka/traul113—~3.9kAutomated safety check: NotesAGPL-3.0
Ak Dev New Messaging Integrationyaalalabs/agent-kernel191—~4.2kAutomated safety check: PassApache-2.0
Ak Add Integrationyaalalabs/agent-kernel191—~2.6kAutomated safety check: PassApache-2.0
Openloomi Connectorsmelandlabs/openloomi1k—~3.3kAutomated safety check: PassApache-2.0
Wire First NanoClaw Agentnanocoai/nanoclaw31k—~2.5kAutomated safety check: NotesMIT
Ops Inboxdavepoon/buildwithclaude3.6k—~7.2kAutomated safety check: NotesMIT

Similar skills

  • Ak Dev New Messaging Integration

    yaalalabs/agent-kernel

    Step-by-step guide for adding a new messaging platform integration to Agent Kernel.

    191 GitHub stars~4.2k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Ak Add Integration

    yaalalabs/agent-kernel

    Add a messaging platform integration to an existing Agent Kernel project.

    191 GitHub stars~2.6k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Openloomi Connectors

    melandlabs/openloomi

    openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…

    1k GitHub stars~3.3k tokensUpdated 14 days ago
    Productivity & AutomationAuto-check passed
  • Wire First NanoClaw Agent

    nanocoai/nanoclaw

    Connects the first NanoClaw agent to a chat channel and proves delivery by having it send the operator a welcome direct message.

    31k GitHub stars~2.5k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check: notes
  • Ops Inbox

    davepoon/buildwithclaude

    Full inbox management across all channels — WhatsApp (wacli), Email (Gmail MCP), Slack (MCP), Telegram (user-auth MCP), Discord (webhook + REST read), Notion (MCP — comments, mentions, assigned…

    3.6k GitHub stars~7.2k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check: notes
  • Lettabot

    letta-ai/lettabot

    Set up and run LettaBot - a multi-channel AI assistant for Telegram, Slack, Discord, WhatsApp, and Signal.

    326 GitHub stars~3.4k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check passed

Questions about Traul Message Search

What does Traul Message Search do?

Drives the traul CLI to sync, search and monitor messages from Slack, Telegram, Discord, Linear, Gmail, WhatsApp, Claude Code sessions and Markdown files. Traul is a command-line personal intelligence engine that indexes communication streams into a local searchable database, and this skill documents its commands for the agent. Sync pulls new messages incrementally from Slack, Telegram, Discord, Linear, Gmail, Claude Code sessions, Markdown files or WhatsApp using cursors, and reports messages added and contacts found per source.

When should I use Traul Message Search?

Traul Message Search fits situations like: syncing new messages from Slack, Telegram or Gmail into the local index; searching past conversations by meaning or keyword across sources; browsing chat history or generating a briefing from indexed messages.

How do I install Traul Message Search in Claude Code?

Run `npx skills add dandaka/traul --skill traul -a claude-code`. Or copy the skill folder (the dandaka/traul repository) into .claude/skills/traul in your project. Claude Code loads it when a task matches its description.

How do I install Traul Message Search in Codex?

Run `npx skills add dandaka/traul --skill traul -a codex`. Or copy the skill folder (the dandaka/traul repository) into .agents/skills/traul in your project. Codex loads it when a task matches its description.

Can I use Traul Message Search in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dandaka/traul --skill traul -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/traul, .gemini/skills/traul, .github/skills/traul and .opencode/skills/traul in your project.

What does Traul Message Search need to run?

Going by SKILL.md and its folder, Traul Message Search needs Python and TypeScript for the scripts in its folder and credentials named SLACK_BOT_TOKEN, SLACK_USER_TOKEN and LINEAR_API_KEY. Our summary lists: The traul CLI, which runs on Bun with TypeScript. Its frontmatter pre-approves these tools: Bash, Read, Edit, Write, Glob, Grep.

Does Traul Message Search access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Traul Message Search safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Traul Message Search use?

Traul Message Search is published under the AGPL-3.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Traul Message Search use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Traul Message Search?

Skills that share tags, products or a category with Traul Message Search: Ak Dev New Messaging Integration (yaalalabs/agent-kernel, 191 stars), Ak Add Integration (yaalalabs/agent-kernel, 191 stars), Openloomi Connectors (melandlabs/openloomi, 1k stars) and Wire First NanoClaw Agent (nanocoai/nanoclaw, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Traul Message Search?

dandaka (a GitHub user) maintains it in dandaka/traul, which has 113 GitHub stars. The repository was last updated on May 6, 2026.

Source: dandaka/traul on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.