### Slackdump Quickstart Guide Source: https://github.com/rusq/slackdump/blob/master/README.md Access the quickstart guide for Slackdump. Refer to the online documentation for detailed instructions. ```shell slackdump help quickstart ``` -------------------------------- ### Install slackdump Library Source: https://github.com/rusq/slackdump/blob/master/README.md Use 'go get' to download and install the slackdump library for your project. ```shell go get github.com/rusq/slackdump/v4 ``` -------------------------------- ### Start Slackdump Wizard Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/quickstart.md Run Slackdump without parameters to initiate the wizard mode for interactive setup. ```bash slackdump wiz ``` -------------------------------- ### Install slackdump with go install Source: https://github.com/rusq/slackdump/blob/master/doc/compiling.md Use this command to build and install the latest release of slackdump directly if you have Go installed. ```shell go install github.com/rusq/slackdump/v4/cmd/slackdump@latest ``` -------------------------------- ### Example: Preview and Execute Cleanup Source: https://github.com/rusq/slackdump/blob/master/doc/usage-cleanup.md This example demonstrates the output of the cleanup tool in preview mode, showing the number of unfinished sessions and chunks, followed by the output when the -execute flag is used to perform the actual cleanup. ```bash $ slackdump tools cleanup ./slackdump_20241231_150405 Unfinished sessions: 2 Chunks in unfinished sessions: 19 Run with -execute to perform cleanup. $ slackdump tools cleanup -execute ./slackdump_20241231_150405 Unfinished sessions: 2 Chunks in unfinished sessions: 19 Removed sessions: 2 Removed chunks: 19 ``` -------------------------------- ### Example: Authenticate to a Specific Workspace URL Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/workspace/assets/new.md Example of using the `workspace new` command with a specific Slack workspace URL for authentication. ```shell slackdump workspace new https://ora600.slack.com ``` -------------------------------- ### Build and Run Slackdump from Source Source: https://github.com/rusq/slackdump/blob/master/README.md Builds an executable of Slackdump from the repository checkout and then runs it. Requires Go to be installed. ```shell go build -o slackdump ./cmd/slackdump ./slackdump wiz ``` -------------------------------- ### Get Slackdump Help Source: https://github.com/rusq/slackdump/blob/master/README.md Run this command to view all available options and general help for Slackdump. ```shell slackdump help ``` -------------------------------- ### Install Runtime Dependency Source: https://github.com/rusq/slackdump/blob/master/contrib/replit_drive_backup/README.md Installs the necessary Node.js package for Replit's connector SDK. ```bash npm install @replit/connectors-sdk ``` -------------------------------- ### Deduplication Preview Example Source: https://github.com/rusq/slackdump/blob/master/doc/usage-dedupe.md This example shows the output of a preview run, indicating the number of duplicates found for various entity types. It prompts the user to run with -execute to perform the actual removal. ```bash $ slackdump tools dedupe ./slackdump_20241231_150405 Duplicate messages: 42 Duplicate users: 548 Duplicate channels: 3 Duplicate channel users: 17 Duplicate files: 1 Chunks to prune: 14 Run with -execute to perform dedupe. ``` -------------------------------- ### Install Slackdump with Homebrew Source: https://github.com/rusq/slackdump/blob/master/README.md Use this command to install Slackdump on macOS using Homebrew. ```shell brew install slackdump ``` -------------------------------- ### Initialize slackdump with Value Authentication Source: https://github.com/rusq/slackdump/blob/master/README.md Example of initializing the slackdump client with a pre-defined token and cookie. Ensure you replace placeholders with actual credentials. ```go package main import ( "context" "log" "github.com/rusq/slackdump/v4" "github.com/rusq/slackdump/v4/auth" ) func main() { provider, err := auth.NewValueAuth("xoxc-...", "xoxd-...") if err != nil { log.Print(err) return } sd, err := slackdump.New(context.Background(), provider) if err != nil { log.Print(err) return } _ = sd } ``` -------------------------------- ### Build slackdump with Version Info (Release Build) Source: https://github.com/rusq/slackdump/blob/master/doc/compiling.md Use 'make' to produce a binary with embedded version strings. This requires 'make' and the Go toolchain to be installed. ```shell make ``` -------------------------------- ### Install Missing Libraries on Linux Source: https://github.com/rusq/slackdump/blob/master/doc/troubleshooting.md On Ubuntu 24.04 and similar distributions, install these libraries to resolve issues with the embedded Chromium browser failing to start. ```bash sudo apt-get install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 \ libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 \ libxfixes3 libxrandr2 libgbm1 libasound2 ``` -------------------------------- ### Deduplication Execution Example Source: https://github.com/rusq/slackdump/blob/master/doc/usage-dedupe.md This example demonstrates the output after executing the deduplication process, showing the number of entities removed for each type. ```bash $ slackdump tools dedupe -execute ./slackdump_20241231_150405 Duplicate messages: 42 Duplicate users: 548 Duplicate channels: 3 Duplicate channel users: 17 Duplicate files: 1 Chunks to prune: 14 Removed messages: 42 Removed users: 548 Removed channels: 3 Removed channel users: 17 Removed files: 1 Removed chunks: 14 ``` -------------------------------- ### Start MCP Server with HTTP Transport Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Start the MCP server using the HTTP transport. An archive path is optional; if omitted, the agent will call `load_source` to open an archive on demand. ```bash slackdump mcp -transport http /path/to/your/archive.db ``` ```bash slackdump mcp -transport http ``` -------------------------------- ### Slack Channel URL Example Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/syntax.md Illustrates the format of a Slack channel URL and how to extract the channel ID. ```text https://xxx.slack.com/archives/C051D4052 ``` -------------------------------- ### Get MCP Command Help Source: https://github.com/rusq/slackdump/blob/master/README.md Refer to this command or the Slackdump MCP command help page for detailed instructions on setting up with Claude Desktop, VS Code/GitHub Copilot, or OpenCode. ```shell slackdump help mcp ``` -------------------------------- ### Generate and Check Code Source: https://github.com/rusq/slackdump/blob/master/AGENTS.md Commands to install development tools, generate code, and perform static analysis checks like vet and lint. ```bash make install_tools ``` ```bash make generate ``` ```bash make vet ``` ```bash make lint ``` -------------------------------- ### Run MCP Server Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Starts the Model Context Protocol (MCP) server. The archive path is optional; if omitted, the agent must call `load_source` to load an archive. ```bash slackdump mcp [flags] [archive] ``` -------------------------------- ### Transfer Credentials to Headless/CI Environment Source: https://github.com/rusq/slackdump/blob/master/doc/troubleshooting.md Run this command to get instructions on transferring credentials to a headless or CI environment. This is essential for automated backups. ```bash slackdump help transfer ``` -------------------------------- ### Start MCP Server with HTTP Transport Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Starts the MCP server using HTTP transport instead of the default stdio. The server listens on the specified host and port. ```bash slackdump mcp -transport http -listen 127.0.0.1:8483 ``` -------------------------------- ### Archive Channels from a File Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/syntax.md Example of archiving channels listed in a file, with an option to exclude specific channels. ```bash slackdump archive @data.txt ``` ```bash slackdump archive @data.txt ^C123456 ``` -------------------------------- ### Use Bundled Browser for Workspace New Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/workspace/assets/new.md Use the `-bundled-browser` flag to fall back to the launcher-managed bundled Chromium if a system browser causes problems or is not installed. ```shell slackdump workspace new -bundled-browser ``` -------------------------------- ### Export Specific Channels or Threads Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/syntax.md Examples of exporting specific channels or threads using their IDs or URLs. ```bash slackdump export C12401724 https://xxx.slack.com/archives/C4812934 ``` ```bash slackdump dump \ https://ora600.slack.com/archives/C051D4052/p1665917454731419 ``` ```bash slackdump export C051D4052:1665917454.731419 ``` -------------------------------- ### View SQLite Archive Locally Source: https://github.com/rusq/slackdump/blob/master/doc/usage-archive.md This command starts a local web server to view the contents of a Slack archive directly in your browser. Refer to the troubleshooting section for 404 errors related to attachments. ```bash slackdump view ./slackdump_20240101_000000 ``` -------------------------------- ### Standard Storage Format Example Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/export/assets/export.md Shows the directory structure for the Standard file storage format, where message attachments are stored within each channel's directory. ```plaintext / ├── everyone : channel "#everyone" │ ├── 2022-01-01.json : all messages for the 1 Jan 2022. │ ├── 2022-01-04.json : " " " " 4 Jan 2022. │ └── attachments : message files │ └── F02PM6A1AUA-Chevy.jpg : message attachment ├── DM12345678 : Your DMs with Scumbag Steve^ │ └── 2022-01-04.json : (you did not have much to discuss — │ : Steve turned out to be a scumbag) ├── channels.json : all workspace channels information ├── dms.json : direct message information └── users.json : all workspace users information ``` -------------------------------- ### Scaffold New MCP Project Source: https://github.com/rusq/slackdump/blob/master/README.md Use these commands to scaffold a new project directory pre-configured for your AI tool. Each command sets up the MCP config file and installs bundled Slackdump skills. ```shell slackdump mcp -new opencode ~/my-slack-project # OpenCode ``` ```shell slackdump mcp -new claude-code ~/my-slack-project # Claude Code ``` ```shell slackdump mcp -new copilot ~/my-slack-project # VS Code / GitHub Copilot ``` -------------------------------- ### Go Error Wrapping Example Source: https://github.com/rusq/slackdump/blob/master/AGENTS.md Use `fmt.Errorf` with `%w` to wrap errors, providing additional context. This is preferred for handling errors in Go. ```go fmt.Errorf("open archive: %w", err) ``` -------------------------------- ### Mattermost Storage Format Example Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/export/assets/export.md Illustrates the directory structure for the Mattermost file storage format, where uploaded files are organized by Slack file ID. ```plaintext / ├── __uploads : all uploaded files are placed in this dir. │ └── F02PM6A1AUA : slack file ID is used as a directory name │ └── Chevy.jpg : file attachment ├── everyone : channel "#everyone" │ ├── 2022-01-01.json : all messages for the 1 Jan 2022. │ └── 2022-01-04.json : " " " " 4 Jan 2022. ├── DM12345678 : Your DMs with Scumbag Steve^ │ └── 2022-01-04.json : (you did not have much to discuss — │ : Steve turned out to be a scumbag) ├── channels.json : all workspace channels information ├── dms.json : direct message information └── users.json : all workspace users information ``` -------------------------------- ### Start MCP Server on Non-Default Port Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Configure the MCP server to listen on a specific IP address and port using the HTTP transport. ```bash slackdump mcp -transport http -listen 127.0.0.1:9000 /path/to/your/archive.db ``` -------------------------------- ### Convert Slack Export to Database Format Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/convertcmd/assets/convert.md Example of converting a Slack Export zip file to the SQLite database format, specifying the output directory. ```bash slackdump convert -f database -o MyArchive/ slack_export.zip ``` -------------------------------- ### Convert Database Format to Slack Export Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/convertcmd/assets/convert.md Example of converting data from the database format to the Slack Export format, outputting to a zip file. The command automatically finds the 'slackdump.sqlite' file within the specified directory. ```bash slackdump convert -f export -o my_archive.zip slackdump_20211231_150405/ ``` -------------------------------- ### Sample File for Channel Lists Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/syntax.md A sample file demonstrating the format for specifying channels, threads, and exclusions, including comments. ```text # This is a comment C123456 ^C123457 https://ora600.slack.com/archives/C051D4052/p1665917454731419 ``` -------------------------------- ### Create New Project with OpenCode Layout Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Scaffolds a new AI project directory with OpenCode configuration and skills. The directory is created if it does not exist. ```bash slackdump mcp -new opencode ~/my-slack-project ``` -------------------------------- ### Thread start condition in Go Source: https://github.com/rusq/slackdump/blob/master/internal/chunk/backend/dbase/AGENTS.md Determines if a message is the start of a thread. It checks if the message has a thread timestamp, if its timestamp matches the thread timestamp, and if it has a non-empty latest reply. ```go msg.ThreadTimestamp != "" && msg.Timestamp == msg.ThreadTimestamp && msg.LatestReply != "0000000000.000000" ``` -------------------------------- ### Build Slackdump Application Source: https://github.com/rusq/slackdump/blob/master/AGENTS.md Standard Go build command to create an executable. Use 'make all' for the preferred build with version metadata. ```bash go build -o slackdump ./cmd/slackdump ``` ```bash make all ``` ```bash make debug ``` ```bash make dist ``` -------------------------------- ### SQL Database Pragmas for Initialization Source: https://github.com/rusq/slackdump/blob/master/internal/chunk/backend/dbase/AGENTS.md These SQL pragmas are applied when initializing the database. External tools should be aware of WAL mode, ensuring sidecar files are present for consistent reads. ```sql PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL; PRAGMA foreign_keys = ON; ``` -------------------------------- ### Configure Manual Login Credentials Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/quickstart.md Set up Slack token and cookies for manual login by creating a secret file and adding credentials. ```bash SLACK_TOKEN=xoxc-.... SLACK_COOKIE=xoxd-.... ``` -------------------------------- ### Create New Project with GitHub Copilot Layout Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Scaffolds a new AI project directory with GitHub Copilot (VS Code) configuration and instructions. The directory is created if it does not exist. ```bash slackdump mcp -new copilot ~/my-slack-project ``` -------------------------------- ### Archive Messages within a Time Range Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/syntax.md Examples of archiving messages from a specific channel within a defined time range. ```bash slackdump archive C123456,2022-01-01T00:00:00,2022-01-31T23:59:59 ``` ```bash slackdump archive C123456,2022-01-01T00:00:00 # or slackdump archive C123456,2022-01-01T00:00:00, ``` ```bash slackdump archive C123456,,2022-01-31T23:59:59 ``` -------------------------------- ### List All Tables with sqlite3 Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3/SKILL.md Use the `.tables` pragma to list all available tables in the SQLite database. ```sql -- List all tables .tables ``` -------------------------------- ### Get Slackdump Info Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/transfer.md Retrieves information about the Slackdump configuration, including the cache directory path where workspace files are stored. ```bash slackdump tools info ``` -------------------------------- ### Get Workspace Path with jq Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/transfer.md Uses `jq` to extract the workspace cache directory path from the `slackdump tools info` output. ```bash slackdump tools info | jq -r '.workspace.path' ``` -------------------------------- ### Open Project in VS Code Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Opens the specified project directory in VS Code. ```bash code ~/my-slack-project ``` -------------------------------- ### Create New Project with Claude Code Layout Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Scaffolds a new AI project directory with Claude Code configuration and skills. The directory is created if it does not exist. ```bash slackdump mcp -new claude-code ~/my-slack-project ``` -------------------------------- ### Build slackdump from Repository Checkout Source: https://github.com/rusq/slackdump/blob/master/doc/compiling.md Clone the repository and use 'go build' to create an executable. This method allows for local modifications before building. ```shell git clone https://github.com/rusq/slackdump.git cd slackdump go build -o slackdump ./cmd/slackdump ``` -------------------------------- ### Run slackdump without Building a Binary Source: https://github.com/rusq/slackdump/blob/master/doc/compiling.md Execute slackdump directly from the source code using 'go run' without creating a separate binary file. Ensure you are in the project directory. ```shell go run ./cmd/slackdump ``` -------------------------------- ### Import Manual Login Credentials Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/quickstart.md Import credentials from a file to use for manual login. ```bash slackdump workspace import ``` -------------------------------- ### Test Slackdump Application Source: https://github.com/rusq/slackdump/blob/master/AGENTS.md Primary command to run tests. 'go test -race -cover ./...' is a direct equivalent. 'make test-all' runs the full local verification suite. ```bash make test ``` ```bash go test -race -cover ./... ``` ```bash make test-all ``` -------------------------------- ### Show Schema for a Table with sqlite3 Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3/SKILL.md Use the `.schema` pragma followed by a table name to view its schema. ```sql -- Show schema for a table .schema MESSAGE ``` -------------------------------- ### Sample Chunk JSON Message Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/chunk.md An example of a JSON object representing a chunk, illustrating the structure and common fields like type, timestamp, and channel ID. ```json { "t": 5, "ts": 1683022288506765000, "id": "CHYLGDP0D", "ci": { "id": "CHYLGDP0D", "created": 1555493778, "is_open": false, "last_read": "1682743815.053209", "name_normalized": "random", "name": "random", "//...": "" } } ``` -------------------------------- ### Create New API Configuration File Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/apiconfig/assets/config_new.md Use this command to generate a new TOML configuration file with default settings. The filename can be specified, and the '.toml' extension is appended if omitted. ```bash slackdump config new myconfig.toml ``` -------------------------------- ### Initialize Slack Beacon Source: https://github.com/rusq/slackdump/blob/master/auth/testdata/redirect.html This code initializes the Slack Beacon script from a CDN. It sets up a global object 'sb' for beacon-related functions and logs the initialization time. ```javascript (function(e,c,b,f,d,g,a){e.SlackBeaconObject=d; e[d]=e[d]||function(){(e[d].q=e[d].q||[]).push([1*new Date(),arguments])}; e[d].l=1*new Date();g=c.createElement(b);a=c.getElementsByTagName(b)[0]; g.async=1;g.src=f;a.parentNode.insertBefore(g,a) })(window,document,"script","https://a.slack-edge.com/bv1-13/slack_beacon.1f9ab05446fdf309c62d.min.js","sb"); ``` -------------------------------- ### Open Project in OpenCode Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Opens the specified project directory in the OpenCode editor. ```bash opencode ~/my-slack-project ``` -------------------------------- ### Go Test Naming Convention for Methods Source: https://github.com/rusq/slackdump/blob/master/AGENTS.md Unit tests for methods should include the receiver type before the method name, prefixed with `Test`. For example, a method `thread` on a `Stream` receiver is tested by `TestStream_thread`. ```go (*Stream).thread ``` ```go TestStream_thread ``` -------------------------------- ### Create New Workspace for Free and Standard Tiers Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/workspace/assets/new.md This command is used to authenticate to a new Slack workspace for Free and Standard tiers. Provide the workspace name or URL. ```shell slackdump workspace new ``` -------------------------------- ### Extract Subtype and Reaction Count from Message Data Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/skills/slackdump-sqlite3/SKILL.md Extract specific fields like 'subtype' and 'reactions' from the JSON blob stored in the `DATA` column using `JSON_EXTRACT`. This example also demonstrates using `JSON_ARRAY_LENGTH` to count reactions. ```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; ``` -------------------------------- ### Archive Workspace Data via Command Line Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/quickstart.md Archive your workspace data using the command line. ```bash slackdump archive ``` -------------------------------- ### Upload and Process Mattermost Import Source: https://github.com/rusq/slackdump/blob/master/doc/usage-export.md Use 'mmctl' to upload the prepared ZIP file to your Mattermost server and initiate the import process. Monitor the job status. ```shell mmctl auth login http://your-mattermost-server ``` ```shell mmctl import upload ./bulk_import.zip ``` ```shell mmctl import list available # note the file name with ID prefix ``` ```shell mmctl import process ``` ```shell mmctl import job list # monitor progress ``` -------------------------------- ### Archive Channel List from File Source: https://github.com/rusq/slackdump/blob/master/doc/enterprise.md To avoid full channel listing, provide a text file with channel URLs or IDs. This method is safer for large numbers of channels. ```shell slackdump archive -channel-users @list.txt ``` -------------------------------- ### Beaconing Implementation (sendBeacon or Image) Source: https://github.com/rusq/slackdump/blob/master/auth/testdata/redirect.html Implements `TSBeacon` to send performance data. It prioritizes `navigator.sendBeacon` for reliable data transmission and falls back to using an `Image` object if `sendBeacon` is not available. This ensures that performance data is sent even when the page is unloading. ```javascript if ('sendBeacon' in navigator) { window.TSBeacon = function (label, value) { var endpoint_url = window.ts_endpoint_url || 'https://slack.com/beacon/timing'; navigator.sendBeacon( endpoint_url + '?data=' + encodeURIComponent(label + ':' + value), '', ); }; } else { window.TSBeacon = function (label, value) { var endpoint_url = window.ts_endpoint_url || 'https://slack.com/beacon/timing'; new Image().src = endpoint_url + '?data=' + encodeURIComponent(label + ':' + value); }; } } ``` -------------------------------- ### Export Workspace Data via Command Line Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/quickstart.md Export your workspace data using the command line. ```bash slackdump export ``` -------------------------------- ### View Slackdump Man Page Source: https://github.com/rusq/slackdump/blob/master/README.md Display the manual page for Slackdump to understand its generic command overview. ```shell man ./slackdump.1 ``` -------------------------------- ### Preview Database Cleanup Source: https://github.com/rusq/slackdump/blob/master/doc/usage-cleanup.md Use this command to preview which unfinished session data and chunks would be removed without making any changes to the database. Pass the archive directory containing slackdump.sqlite. ```bash slackdump tools cleanup /path/to/archive ``` -------------------------------- ### Open Project in Claude Code Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md Opens the specified project directory in Claude Code. ```bash claude ~/my-slack-project ``` -------------------------------- ### Basic Usage of Slackdump View Command Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/view/assets/view.md Run the slackdump view command with the path to the directory or ZIP file you wish to inspect. ```bash slackdump view ``` -------------------------------- ### Slack Boot Data Configuration Source: https://github.com/rusq/slackdump/blob/master/auth/testdata/redirect.html A comprehensive JSON object containing boot data for the Slack application, including CDN configurations, user and team IDs, API tokens, and numerous feature flags and experiment assignments. ```json var boot_data = {"cdn":{"edges":\["https:\/\/a.slack-edge.com\/","https:\/\/b.slack-edge.com\/","https:\/\/a.slack-edge.com\/"\],"avatars":"https:\/\/ca.slack-edge.com\/","downloads":"https:\/\/downloads.slack-edge.com\/","files":"https:\/\/slack-files.com\/"},"user_id":"UHHHHHHHH","team_id":"THY5HTZ8U","api_token":"xoxc-000000000300-604451271345-8802919159412-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","page_needs_enterprise":false,"feature_builder_story_step":false,"feature_olug_remove_required_workspace_setting":false,"feature_file_threads":true,"feature_broadcast_indicator":true,"feature_sonic_emoji":true,"feature_attachments_inline":false,"feature_desktop_symptom_events":false,"feature_gdpr_user_join_tos":true,"feature_user_invite_tos_april_2018":true,"feature_channel_mgmt_message_count":false,"feature_channel_exports":false,"feature_allow_intra_word_formatting":true,"feature_slim_scrollbar":false,"feature_edge_upload_proxy_check":true,"feature_set_tz_automatically":true,"feature_attachments_v2":true,"feature_beacon_js_errors":false,"feature_user_app_disable_speed_bump":true,"feature_apps_manage_permissions_scope_changes":true,"feature_ia_member_profile":true,"feature_desktop_reload_on_generic_error":true,"feature_desktop_extend_app_menu":true,"feature_desktop_restart_service_worker":false,"feature_wta_stop_creation":true,"feature_admin_email_change_confirm":true,"feature_improved_email_rendering":true,"feature_recent_desktop_files":true,"feature_cea_allowlist_changes":false,"feature_cea_channel_management":true,"feature_cea_admin_controls":false,"feature_cea_allowlist_changes_plus":false,"feature_ia_layout":true,"feature_threaded_call_block":true,"feature_enterprise_mobile_device_check":true,"feature_trace_jq_init":true,"feature_seven_days_email_update":true,"feature_channel_sections":true,"feature_show_email_forwarded_by":false,"feature_mpdm_audience_expansion":true,"feature_remove_email_preview_link":true,"feature_desktop_enable_tslog":false,"feature_email_determine_charset":true,"feature_no_deprecation_in_updater":false,"feature_pea_domain_allowlist":true,"feature_composer_auth_admin":true,"experiment_assignments":{"slackforce_feature_entitlement_m2":{"experiment_id":"8656149622259","type":"user","group":"on","schedule_ts":1748643877,"exposure_id":"604451271345","trigger":"launch_user","log_exposures":false},"record_channels_expanded_access":{"experiment_id":"8070180088708","type":"user","group":"on","schedule_ts":1748643501,"exposure_id":"604451271345","trigger":"launch_user","log_exposures":false},"ml_extractor_refactor_migration":{"experiment_id":"8870282051396","type":"user","group":"on","trigger":"finished","log_exposures":false,"exposure_id":"604451271345"},"ml_extractor_refactor_migration_huddle":{"experiment_id":"8870364249571","type":"user","group":"on","trigger":"finished","log_exposures":false,"exposure_id":"604451271345"},"push_token_stale_use_job":{"experiment_id":"6458480991410","type":"user","group":"on","trigger":"finished","log_exposures":false,"exposure_id":"604451271345"},"enterprise_search_hero_banner_nux":{"experiment_id":"8870685606005","type":"user","group":"off","trigger":"hash_user","schedule_ts":1748542788,"log_exposures":true,"exposure_id":"604451271345"},"ios_canvas_cache_reset_app_version":{"experiment_id":"8966182213270","type":"user","group":"app_version_250610","schedule_ts":1748625363,"exposure_id":"604451271345","trigger":"launch_user","log_exposures":false},"conversations_create_child_channel_loom_update":{"experiment_id":"8967667262338","type":"team","group":"off","trigger":"hash_team","schedule_ts":1748621232,"log_exposures":false,"exposure_id":"610187951300"},"bulk_apis_lookup_pinot_query":{"experiment_id":"8925752971330","type":"team","group":"on","schedule_ts":1748366932,"exposure_id":"610187951300","trigger":"launch_team","log_exposures":false},"hermes_builder_stable":{"experiment_id":"5496 ``` -------------------------------- ### Import Token/Cookie for Manual Authentication Source: https://github.com/rusq/slackdump/blob/master/doc/troubleshooting.md Use this command to import a token and cookie pair when automatic login methods fail. This is often necessary for SSO flows that redirect unexpectedly. ```bash slackdump workspace import ``` -------------------------------- ### Environment File Format for Slackdump Import Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/workspace/assets/import.md This is the expected format for `.env`, `.env.txt`, or `secrets.txt` files used to import Slack credentials. Ensure both `SLACK_TOKEN` and `SLACK_COOKIE` (if applicable) are present. ```shell SLACK_TOKEN=xoxc-... SLACK_COOKIE=xoxd-... ``` -------------------------------- ### Agent Loads Archive via `load_source` Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/mcp/assets/mcp.md An agent can initiate archive loading or switching by calling the `load_source` function with the desired archive path. This works for both stdio and HTTP transports. ```python load_source(path="/path/to/your/archive.db") ``` ```python load_source(path="/path/to/another/archive.db") ``` -------------------------------- ### List All Workspace Users Source: https://github.com/rusq/slackdump/blob/master/doc/usage-list.md Prints all workspace users to the console and saves the results as a JSON file. This is the basic command for retrieving user information. ```shell slackdump list users ``` -------------------------------- ### Resume an Existing Archive Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/resume/assets/resume.md Use the 'resume' command with the database archive directory to continue the archiving process from where it was interrupted. ```plaintext slackdump resume slackdump_20241231_150405 ``` -------------------------------- ### Generate Channel ID List Source: https://github.com/rusq/slackdump/blob/master/doc/usage-archive.md Create a file of channel IDs for use with the `@file` argument by listing channels and extracting their IDs using `jq`. ```bash slackdump list channels -o channels.json jq -r '.[].id' channels.json > channels.txt ``` -------------------------------- ### List Workspaces Source: https://github.com/rusq/slackdump/blob/master/cmd/slackdump/internal/man/assets/transfer.md Lists workspace files, useful for identifying the name of the workspace file to be transferred (e.g., your_workspace.bin). ```bash slackdump workspace list ``` -------------------------------- ### View Exported Data with Slackdump Source: https://github.com/rusq/slackdump/blob/master/WHATSNEW.md Use the 'view' command to open exported data. Currently, search results are not supported. ```bash slackdump view ``` -------------------------------- ### Run Drive Upload Script Source: https://github.com/rusq/slackdump/blob/master/contrib/replit_drive_backup/README.md Executes the Node.js script to upload the archive directory to Google Drive. Ensure DRIVE_PARENT_ID is set to your Google Drive folder ID. ```bash DRIVE_PARENT_ID="" \ ARCHIVE_DIR="/path/to/archive" \ node drive-upload-folder.mjs ```