Agent skill

Slackdump Sqlite3

by rusq in rusq/slackdump

Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.

AGPL-3.0Auto-check passed

Install Slackdump Sqlite3

skills CLI
$ npx skills add rusq/slackdump --skill slackdump-sqlite3 -a claude-code

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

GitHub CLI
$ gh skill install rusq/slackdump slackdump-sqlite3 --agent claude-code

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

Manual copy
$ git clone --depth 1 https://github.com/rusq/slackdump.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 .claude/skills/slackdump-sqlite3 && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

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

Facts

Skill name
slackdump-sqlite3
GitHub stars
2.8k
Token cost
~1.6k tokens
SKILL.md length
503 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.

  • Works in 2 steps: Multiple sessions — e.g. after a… → Multiple chunk types within the same…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Slackdump Sqlite3 is an agent skill from rusq/slackdump. Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with SQLite, Slack and Model Context Protocol. The repository describes itself as: Save or export your private and public Slack messages, threads, files, and users locally without admin privileges. The licence is AGPL-3.0.

Example prompts

  • “/slackdump-sqlite3”

Workflow steps

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

  1. Multiple sessions — e.g. after a slackdump resume run the same
  2. Multiple chunk types within the same session — a thread-starter message

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are sql).

    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 no API keys, tokens, secrets or passwords.

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

Context cost

Slackdump Sqlite3 loads about 1.6k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 503 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from rusq/slackdump at commit 88e7c22, republished under its AGPL-3.0 licence (© rusq). 503 words, ~1,596 tokens.

Download SKILL.mdSave it as .claude/skills/slackdump-sqlite3/SKILL.md (or your agent's skills folder).
name
slackdump-sqlite3
description
Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.
metadata.audience
general
metadata.workflow
database

Querying Slackdump database with sqlite3

Use this skill when the Slackdump MCP and SQLite MCP are both unavailable and you must fall back to the sqlite3 command-line tool.

Locate the database

Look for slackdump.sqlite in the current directory or the archive directory. If multiple files exist, ask the user to choose one.

Read-only access

You must not run any UPDATE, DELETE, INSERT, DROP, CREATE, or other DML/DDL statements. Only SELECT and data-dictionary queries are permitted.

Useful pragmas
sql
-- List all tables
.tables

-- Show schema for a table
.schema MESSAGE
Key tables
TableDescription
SESSIONOne row per slackdump invocation
CHUNKOne row per Slack API call
TYPESChunk type lookup (e.g. MESSAGES, THREADS)
MESSAGEChannel and thread messages
CHANNELSlack channels / conversations
S_USERWorkspace members
FILEFile attachments linked to messages
WORKSPACEWorkspace information
CHANNEL_USERMembers of a channel
SEARCH_MESSAGEMessages from slackdump search results
SEARCH_FILEFiles from slackdump search results
Chunk types (TYPES table)
IDNAMEStores data in
0MESSAGESMESSAGE
1THREAD_MESSAGESMESSAGE
2FILESFILE
3USERSS_USER
4CHANNELSCHANNEL
5CHANNEL_INFOCHANNEL
6WORKSPACE_INFOWORKSPACE
7CHANNEL_USERSCHANNEL_USER
8STARRED_ITEMS(no table)
9BOOKMARKS(no table)
10SEARCH_MESSAGESSEARCH_MESSAGE
11SEARCH_FILESSEARCH_FILE

Chunk types with (no table) are not implemented yet, but reserved for future implementation. You will not see those chunks in the database.

Thread messages

A MESSAGE row is a thread reply when PARENT_ID IS NOT NULL AND IS_PARENT = FALSE.

Note: thread-parent messages also have PARENT_ID set (equal to their own ID), so PARENT_ID IS NOT NULL alone matches both parents and replies. Use IS_PARENT = TRUE to select thread-parent messages, and IS_PARENT = FALSE AND PARENT_ID IS NOT NULL for replies only.

MESSAGE.ID vs MESSAGE.TS

MESSAGE.ID is not the Slack timestamp string. It is the timestamp converted to an int64 by stripping the dot: e.g. "1648085300.726649" → 1648085300726649.

Use MESSAGE.TS for the human-readable Slack timestamp (e.g. for display or for passing to get_thread).

Show full SKILL.md (196 more words)Show less
DATA column — full JSON blob

Every entity table (MESSAGE, CHANNEL, S_USER, FILE, etc.) stores the complete Slack API JSON payload in a DATA column (stored as a blob). Columns like TS, PARENT_ID, IS_PARENT, MODE, NAME are extracted for indexing, but all other fields (reactions, edited timestamps, message subtypes, user profiles, etc.) are only accessible via SQLite's JSON_EXTRACT:

sql
-- Example: get the subtype and reaction count of messages
SELECT TS,
       JSON_EXTRACT(DATA, '$.subtype') AS subtype,
       JSON_ARRAY_LENGTH(DATA, '$.reactions') AS reaction_count
FROM MESSAGE
WHERE CHUNK_ID = 44;
Fetching the latest version of a message

The same message (same MESSAGE.TS AND MESSAGE.CHANNEL_ID) can appear in multiple chunks and multiple sessions. There are two distinct reasons:

  1. Multiple sessions — e.g. after a slackdump resume run the same message may be fetched again and stored in a newer session.
  2. Multiple chunk types within the same session — a thread-starter message is stored twice in the same session: once under CHUNK.TYPE_ID=0 (channel history) and once under CHUNK.TYPE_ID=1 (thread messages).

Always scope your query to the correct chunk type first, then pick the latest session:

Latest Channel messages
  • Use CHUNK.TYPE_ID = 0 when querying channel history messages.
sql
-- Latest version of each channel-history message in a channel (TYPE_ID=0)
WITH LATEST AS (
    SELECT T.ID, MAX(CHUNK_ID) AS CHUNK_ID 
    FROM MESSAGE AS T 
    JOIN CHUNK AS CH ON CH.ID = T.CHUNK_ID
    WHERE 1=1 
    AND CH.TYPE_ID IN (0,1) 
    AND (
      T.CHANNEL_ID = [CHANNEL_ID]
      AND (
            ( CH.TYPE_ID=0 AND (CH.THREAD_ONLY=FALSE OR CH.THREAD_ONLY IS NULL)) 
         OR (CH.TYPE_ID=1 AND CH.THREAD_ONLY=TRUE AND T.IS_PARENT=TRUE)
         )
    )
    GROUP BY T.ID
)
SELECT T.ID,T.CHUNK_ID,T.CHANNEL_ID,T.TS,T.PARENT_ID,T.THREAD_TS,T.IS_PARENT,T.IDX,T.NUM_FILES,T.TXT,T.DATA,T.LATEST_REPLY
FROM LATEST L
JOIN MESSAGE AS T ON 1 = 1 AND T.ID = L.ID
 AND T.CHUNK_ID = L.CHUNK_ID JOIN CHUNK CH ON T.CHUNK_ID = CH.ID WHERE 1=1
ORDER BY T.ID;
Latest thread messages
  • Use CHUNK.TYPE_ID = 1 when querying thread messages.
sql
-- Latest version of each thread message in a thread (TYPE_ID=1)
WITH LATEST AS (
    SELECT T.ID, MAX(CHUNK_ID) AS CHUNK_ID
      FROM MESSAGE AS T
      JOIN CHUNK AS CH ON CH.ID = T.CHUNK_ID
    WHERE 1=1
      AND CH.TYPE_ID IN (0,1)
      AND (
            T.CHANNEL_ID = [CHANNEL_ID]
        AND T.PARENT_ID = [PARENT_MESSAGE_ID]
        AND ( JSON_EXTRACT(T.DATA, '$.subtype') IS NULL OR (JSON_EXTRACT(T.DATA, '$.subtype') = 'thread_broadcast' AND CH.TYPE_ID = 1 )   )
      )
    GROUP BY T.ID
)
SELECT T.ID,T.CHUNK_ID,T.CHANNEL_ID,T.TS,T.PARENT_ID,T.THREAD_TS,T.IS_PARENT,T.IDX,T.NUM_FILES,T.TXT,T.DATA,T.LATEST_REPLY
  FROM LATEST L
  JOIN MESSAGE AS T ON 1 = 1 AND T.ID = L.ID
   AND T.CHUNK_ID = L.CHUNK_ID JOIN CHUNK CH ON T.CHUNK_ID = CH.ID WHERE 1=1
ORDER BY T.ID
Ignore V_* views

Other views prefixed with V_ are internal to slackdump and track unprocessed threads during execution. Do not rely on them for analysis.

© rusq, 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

Just SKILL.md in cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 of rusq/slackdump.

Open the folder on GitHubat commit 88e7c22

Compare with similar skills

Slackdump Sqlite3 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.

Slackdump Sqlite3 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Slackdump Sqlite3 this skillrusq/slackdump2.8k—~1.6kAutomated safety check: PassAGPL-3.0
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
ComposioComposioHQ/composio30k1 repos~1.7kAutomated safety check: PassMIT
Adding LLM MCP ToolsTriliumNext/Trilium38k—~2.5kAutomated safety check: PassAGPL-3.0
Agent Memorytigerless-labs/agent-memory2.4k—~1.3kAutomated safety check: PassMIT
Foremergenaw103/foremerge537—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Composio

    ComposioHQ/composio

    Route and complete Composio work across Composio For You and Composio Platform.

    30k GitHub starsUsed in 1 repo~1.7k tokens
    Productivity & AutomationAuto-check passed
  • Adding LLM MCP Tools

    TriliumNext/Trilium

    A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…

    38k GitHub stars~2.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Agent Memory

    tigerless-labs/agent-memory

    Read and write the shared long-term memory store. An agent skill from tigerless-labs/agent-memory.

    2.4k GitHub stars~1.3k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Foremerge

    naw103/foremerge

    Coordinate parallel coding agents with Foremerge's local Git-compatible CLI and MCP server.

    537 GitHub stars~2.4k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Puppetmaster Agent Orchestration

    professorpalmer/Puppetmaster

    Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.

    467 GitHub stars~3.2k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from rusq/slackdump

  • Pre Release

    rusq/slackdump

    Prepare this repository for a release. An agent skill from rusq/slackdump.

    2.8k GitHub stars~841 tokensUpdated 4 days ago
    Auto-check passed
  • Slackdump

    rusq/slackdump

    Collect the Slack conversation data from Slackdump Archive format.

    2.8k GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed
  • Slackdump Source

    rusq/slackdump

    Explains the different Slackdump sources structure. An agent skill from rusq/slackdump.

    2.8k GitHub stars~876 tokensUpdated 4 days ago
    Auto-check passed

Questions about Slackdump Sqlite3

What does Slackdump Sqlite3 do?

Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI. Slackdump Sqlite3 is an agent skill from rusq/slackdump. Guidance for querying a Slackdump SQLite3 database directly via the sqlite3 CLI.

How do I install Slackdump Sqlite3 in Claude Code?

Run `npx skills add rusq/slackdump --skill slackdump-sqlite3 -a claude-code`. Or copy the skill folder (cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 in rusq/slackdump) into .claude/skills/slackdump-sqlite3 in your project. Claude Code loads it when a task matches its description.

How do I install Slackdump Sqlite3 in Codex?

Run `npx skills add rusq/slackdump --skill slackdump-sqlite3 -a codex`. Or copy the skill folder (cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3 in rusq/slackdump) into .agents/skills/slackdump-sqlite3 in your project. Codex loads it when a task matches its description.

Can I use Slackdump Sqlite3 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 rusq/slackdump --skill slackdump-sqlite3 -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/slackdump-sqlite3, .gemini/skills/slackdump-sqlite3, .github/skills/slackdump-sqlite3 and .opencode/skills/slackdump-sqlite3 in your project.

What does Slackdump Sqlite3 need to run?

SKILL.md names no scripts, command-line tools or credentials: Slackdump Sqlite3 is instructions for the agent only.

Does Slackdump Sqlite3 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 Slackdump Sqlite3 safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Slackdump Sqlite3 use?

Slackdump Sqlite3 is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Slackdump Sqlite3 use?

About 1.6k tokens (SKILL.md is roughly 6.4k 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 Slackdump Sqlite3?

Skills that share tags, products or a category with Slackdump Sqlite3: MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), Composio (ComposioHQ/composio, 30k stars), Adding LLM MCP Tools (TriliumNext/Trilium, 38k stars) and Agent Memory (tigerless-labs/agent-memory, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Slackdump Sqlite3?

rusq (a GitHub user) maintains it in rusq/slackdump, which has 2,811 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 3, 2026.

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