Version 4.0.0 modernizes the bot with official APIs, local models, personal CLI accounts, persistent conversations and a refreshed Discord interface.
🚀 New Features
- Official API support: OpenAI, Anthropic Claude, Google Gemini, xAI Grok and DeepSeek, with configurable model IDs and explicit capabilities.
- Local and custom models: connect administrator-configured OpenAI-compatible chat endpoints, including Ollama, LM Studio and vLLM. Local servers can run without an API key where supported.
- Personal CLI accounts: chat through Claude Code, Codex
execor Grok Build CLI using explicit API authentication or eligible native account/subscription login. Codex and Grok support owner-only device login from/cli_auth; Claude login runs in the local terminal. - Persistent conversations: SQLite history survives restarts and is scoped by bot, server, channel/thread, user and private/public context. Switch models or personas while retaining text history, resume explicit CLI sessions, and manage history with
/resetand/delete. - Richer Discord commands: embeds for
/modelsand/help, paginated model catalogs, current-model status with/provider, and capability-aware model menus for chat,/image_search,/drawand/video. - Official media integrations: API paths for OpenAI image generation/editing, Gemini Veo text/image-to-video, xAI text-to-video and xAI image search. Video jobs support bounded polling, retrieval with
/job, cancellation and Discord attachments.
🔧 Improvements
- Separate Discord handling, conversation storage, provider execution and media generation.
- Add configurable retention, context budgets and bounded concurrency, with conflicting requests serialized per conversation.
- Use asynchronous HTTP and subprocess execution with timeouts, cancellation, bounded output and resource cleanup.
- Run CLI backends in restricted containers with disabled agent tools, scoped account/session storage and controlled network access. Support dedicated rootless Docker or explicitly configured personal Docker Desktop mode with verified isolation controls.
- Replace silent provider/billing fallbacks with clear configuration, capability and provider errors.
🐛 Bug Fixes
- Prevent unintended conversation sharing and repeated history submission across provider requests.
- Correct misleading model identity after provider switches and expose the configured backend without making a model request.
- Handle missing native sessions by reconstructing supported context from bot-owned history.
- Fix CLI descendant cleanup and parsing of the pinned Codex CLI's disabled-Code-Mode notice while continuing to reject tool execution and unexpected errors.
- Improve media failure handling, artifact limits and temporary-file cleanup; avoid automatically resubmitting paid generation jobs.
📚 Documentation & Testing
- Rewrite the README with setup instructions, command examples, backend configuration and links to the CLI, capability and migration guides.
- Update dependencies, packaging and container configuration for Python 3.12–3.14.
- Add offline CI, HTTP contract fixtures and fake CLI executables. 297 offline tests pass on each supported Python version, alongside lint, type and package checks.
- Live checks passed for OpenAI/Anthropic/xAI chat, all three native CLI accounts with explicit session resumption, and xAI video generation. Gemini, DeepSeek and local/custom live checks remain outstanding. OpenAI image generation encountered a provider limit error; xAI image search encountered a tool failure. These paths retain offline contract coverage.
⚠️ Breaking Changes
- Replace legacy environment-based provider settings with TOML backend/model configuration and referenced credential environment variables. Obsolete settings are rejected at startup.
- Remove unofficial free-provider aggregators, consumer-site scraping, browser-cookie authentication and their hidden fallbacks. Legitimate official APIs with free tiers remain supported.
- Require Python 3.12–3.14 and a fresh dependency environment. The old shared in-memory history is not imported into individual users' new conversations.
- Native account/subscription mode is restricted to a personal bot owned by the account holder. API usage is billed separately; CLI image/video generation and image search are unsupported.
🔄 Migration
- Stop the old bot and back up your private configuration and custom prompts.
- Create a fresh Python environment, install the updated requirements, and adapt
.env.exampleplusconfig.example.tomlto your providers and access settings. - Follow the migration guide, then verify commands, conversation isolation and restart recovery before wider use.
See the README, CLI setup guide and provider capabilities for configuration and limitations.
Full changelog: v3.0.0...v4.0.0