{"adoption": {"forks": 155, "observed_at": "2026-08-28T04:07:18.554983+00:00", "stars": 2764}, "canonical_url": "https://ross.abutalabs.com/products/slackdump", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Save or export your private and public Slack messages, threads, files, and users locally without admin privileges.", "domain": ["messaging-platforms", "self-hosted", "files", "developer-tools", "privacy"], "enriched": true, "function": ["backup", "web-scraping", "search-engine", "mcp", "developer-tools", "cli", "file-system", "data-science"], "health_score": 99, "homepage": null, "language": "Go", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["rusq/slackdump"], "name": "rusq/slackdump", "platform": ["windows", "cli", "go", "cross-platform"], "pushed_at": "2026-08-19T09:15:10+00:00", "repo": "rusq/slackdump", "stars": 2764, "tags": ["slack-export", "slack-archive", "mattermost-migration", "no-admin-privileges", "emoji-download", "sqlite-archive", "incremental-backup", "mcp-server", "automation", "data-engineering", "linux", "macos"], "topics": ["slack", "archive", "dumper", "dump", "channels", "mattermost", "slackdump", "migration-tool", "backup", "slack-exports", "mattermost-app", "mcp-server"], "urls": [], "use_cases": ["export my private Slack conversations without admin access", "archive Slack channels on a free plan before the 90-day message limit", "create a Slack Export archive for Mattermost migration", "back up Slack messages and files locally", "download Slack emojis and custom reactions", "search archived Slack messages offline", "give an AI agent access to my Slack history via MCP"], "what_it_is": "Slackdump is a Go CLI tool that archives private and public Slack messages, threads, files, users, channels, and emojis locally without requiring admin privileges. It can generate Slack Export archives, incremental backups, SQLite archives, and exposes an MCP server for AI agent access to Slack data.", "when_to_avoid": ["you have full admin access and prefer official Slack compliance exports", "your organization's policies or Slack terms prohibit automated scraping", "you need a hosted SaaS backup solution rather than a local CLI tool", "you only need to read public Slack data via a bot app rather than dump archives"], "when_to_choose": ["you need to preserve Slack history without workspace admin rights", "you're on a free Slack plan with message history limits and want incremental archives", "you're migrating from Slack to Mattermost and need a compatible export", "you want local, privacy-respecting Slack data extraction instead of third-party cloud tools"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/slackdump", "repo": "rusq/slackdump", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.554983+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:16:47.500352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f7d28fb2dbf818f029bd1e012e4db768f11241864818acf7cc5de6f3b70a9d14", "fetched_at": "2026-08-28T04:07:18.554983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusq/slackdump"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1767, "days_push": 14, "days_rel": 14, "gap_med": 9, "n_releases_24m": 50}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}