Documentation
Discord bot
The ctrl alt doc Discord bot provides a small Discord interface to a CAD documentation site.
It is designed as a thin integration layer:
Discord → Discord bot → CAD HTTP API → Discord bot → DiscordCAD remains responsible for loading documents, searching them, resolving page slugs, and maintaining the documentation collection. The bot does not copy CAD's search or document logic.
Commands #
/docs search <query>
/docs page <slug>
/docs list category:<slug>Read about each command:
Responses are plain Discord messages. The bot does not use embeds.
Self-hosting #
The bot is intended to be self-hosted. Each operator creates their own Discord application, invites the bot to their own server, and points it at their own CAD site.
Install a release #
Download the latest cad-bot release , then unpack it on the machine that will run the bot:
tar -xzf cad-discord-<version>.tar.gz
cd cad-discord-<version>
npm ci --omit=dev
cp .env.example .envEdit .env with the Discord application details and the URL of the CAD site. Then register the command and start the bot:
npm run register
npm startInstall from npm #
The public cad-discord npm package is the quickest way to install the bot:
npm install --global cad-discord
mkdir cad-discord-config
cd cad-discord-config
cp "$(npm root --global)/cad-discord/.env.example" .envEdit .env, then register the commands and start the bot:
cad-discord-register
cad-discordBoth commands use the .env file in the current working directory. GitHub Releases remain available if you prefer a versioned tarball.
For local development, set DISCORD_GUILD_ID to register commands for one server immediately. For a public installation, omit it to register global commands; global command changes can take longer to appear in Discord.
Required configuration:
DISCORD_TOKEN=
DISCORD_CLIENT_ID=
DISCORD_GUILD_ID=
CAD_BASE_URL=http://localhost:5173Keep the Discord token secret. Do not commit the real .env file or include credential values in documentation.
Privacy and data boundaries #
The bot does not read ordinary Discord messages and does not require the privileged Message Content intent. It does not maintain user profiles, search history, analytics, telemetry, or an AI integration.
Search queries are sent to the configured CAD server for the request and are not deliberately persisted by the bot. Hosting providers and the CAD server may retain normal process or HTTP access logs according to their own configuration.
