start

Install

Install

Discrawl is a single Go binary. Install via Homebrew or build from source.

#Homebrew

brew install openclaw/tap/discrawl
discrawl --version

The tap auto-installs from openclaw/tap.

#Check for updates

discrawl check-update
discrawl check-update --json

Interactive 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.

#From source

Requires Go 1.26+.

git clone https://github.com/openclaw/discrawl.git
cd discrawl
go build -o bin/discrawl ./cmd/discrawl
./bin/discrawl --version

If you do not put discrawl on PATH, replace discrawl with ./bin/discrawl in any example below.

#Quick start (with bot token)

export DISCORD_BOT_TOKEN="your-bot-token"
discrawl init
discrawl doctor
discrawl sync --full
discrawl sync
discrawl search "panic: nil pointer"
discrawl tail

init 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.

#Quick start (Git-only reader)

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 24

subscribe 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 --json

This writes read-only [remote] config and does not create a local SQLite database.

#Default runtime paths

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.

#Next steps

  • Bot setup - intents, permissions, token sources
  • Configuration - the full TOML shape and override rules
  • sync - the main archive command