Discrawl is a single Go binary. Install via Homebrew or build from source.
brew install openclaw/tap/discrawl
discrawl --versionThe tap auto-installs from openclaw/tap.
discrawl check-update
discrawl check-update --jsonInteractive terminal runs perform a cached daily release check and print a
stderr notice when a newer Discrawl release is available. Scripted, JSON, CI,
and non-TTY runs skip the passive notice. Set DISCRAWL_NO_UPDATE_CHECK=1 or
CRAWLKIT_NO_UPDATE_CHECK=1 to disable it.
Release-check HTTP requests time out after 30 seconds if the server does not respond.
Requires Go 1.27.0+; the module selects Go 1.27.3 as its preferred toolchain, which Go downloads automatically when needed. CI and the Docker build use this patch release too.
git clone https://github.com/openclaw/discrawl.git
cd discrawl
go build -o bin/discrawl ./cmd/discrawl
./bin/discrawl --versionIf you do not put discrawl on PATH, replace discrawl with ./bin/discrawl in any example below.
export DISCORD_BOT_TOKEN="your-bot-token"
discrawl init
discrawl doctor
discrawl sync --full
discrawl sync
discrawl search "panic: nil pointer"
discrawl tailinit discovers accessible guilds and writes the default XDG config file. If
exactly one guild is available, it becomes the default automatically.
doctor verifies the config loads, the token resolves, the bot can reach the
Gateway, and the local DB and FTS index are wired up.
No Discord credentials required. You read a private Git snapshot another machine published.
discrawl subscribe https://github.com/example/discord-archive.git
discrawl search "launch checklist"
discrawl messages --channel general --hours 24subscribe writes a token-free config (discord.token_source = "none") and
imports the snapshot. Read commands auto-refresh when the local snapshot is
older than 15m.
For Worker-fronted archives that should stay fully remote:
discrawl subscribe-cloud --endpoint https://crawl.example.workers.dev --archive openclaw/discord
discrawl status --jsonThis writes read-only [remote] config and does not create a local SQLite
database.
Discrawl follows the OS storage convention instead of writing a new top-level directory in your
home folder. Linux uses XDG Base Directory paths. macOS uses ~/Library folders unless you set XDG
variables yourself.
- Linux config:
${XDG_CONFIG_HOME:-~/.config}/discrawl/config.toml - Linux database/share:
${XDG_DATA_HOME:-~/.local/share}/discrawl/ - Linux cache:
${XDG_CACHE_HOME:-~/.cache}/discrawl/ - Linux logs:
${XDG_STATE_HOME:-~/.local/state}/discrawl/logs/ - macOS config/database/logs/share:
~/Library/Application Support/discrawl/ - macOS cache:
~/Library/Caches/discrawl/
Upgrades do not move your database automatically. Existing
~/.discrawl/config.toml installs continue to load when the new default config
file does not exist, even if XDG variables are set globally by your desktop.
Existing legacy runtime paths keep winning until the matching new path exists.
To migrate deliberately, copy or create the new config file first, or point
Discrawl at it with --config / DISCRAWL_CONFIG, then copy the database and
share directory you want to preserve.
- Bot setup - intents, permissions, token sources
- Configuration - the full TOML shape and override rules
sync- the main archive command