Releases: calchiwo/ExplainThisRepo
ExplainThisRepo v0.20.1
What's Changed
Full Changelog: v0.20.0...v0.20.1
ExplainThisRepo v0.20.0
Major architecture shift.
Python is now the only core. Node is a launcher.
What shipped
-
Python owns all runtime logic
-
Node CLI reduced to binary launcher
-
Native binaries built via PyInstaller
-
Multi-platform support: macOS, Linux, Windows
-
npm now distributes prebuilt binaries
-
pip continues as full Python install
What changed
-
Removed Node runtime logic from execution path
-
Removed provider logic from Node
-
Unified all behavior in Python
-
Introduced binary build + staging pipeline
-
Added checksum verification in release flow
-
Synced versioning across npm and PyPI
How it works now
-
CLI runs → Node launcher executes
-
Correct binary is selected per platform
-
Python core handles everything
-
Output is passed through directly
No duplicated logic. No divergence.
Install
npm (no Python required):
npm install -g explainthisrepopip (Python source):
pip install explainthisrepoSource
Discussion: #203
Pull Request: #208
Notes
-
Node is infrastructure only
-
Python is the product
-
Both npm and pip run the same engine
This is not an incremental update.
This is the system reset.
Full Changelog: v0.10.0...v0.20.0
explainthisrepo v0.10.0
What's Changed
- Adds additional CLI entrypoints to improve usability and typing speed. by @calchiwo in #190
- Add CLI aliases for Node.js CLI parity by @calchiwo in #191
- refactor(node-providers): require model in config for ollama and fix validation by @calchiwo in #194
- feat(node-provider): implement anthropic provider by @calchiwo in #195
- feat(node-providers): implement openrouter provider by @calchiwo in #196
- feat(node-provider): Implement groq provider by @calchiwo in #197
Full Changelog: v0.9.6...v0.10.0
explainthisrepo v0.9.6
Add CLI aliases for faster and more flexible usage.
explain-this-repofor readabilityetrfor fast accessexplainthisreporemains unchanged
All commands map to the same implementation. No breaking changes
Full Changelog: v0.9.5...v0.9.6
ExplainThisRepo v0.9.5
What's Changed
- feat(providers): implement Groq provider by @calchiwo in #186
- chore(deps): bump next from 16.1.6 to 16.1.7 in /apps/web by @dependabot[bot] in #184
- refactor(providers): remove default model and require user-defined model for groq by @calchiwo in #187
- feat: add OpenRouter Provider by @calchiwo in #188
Full Changelog: v0.9.4...v0.9.5
ExplainThisRepo v0.9.4
Add Groq provider and require user-defined model selection.
Removes default model and updates init flow to prompt for model.
Full Changelog: v0.9.3...v0.9.4
ExplainThisRepo v0.9.3
Added Groq Provider
Supports API key + explicit model selection via --llm groq
Full Changelog: v0.9.2...v0.9.3
ExplainThisRepo v0.9.2
Added Anthropic (Claude) Provider
Supports API key + explicit model selection via --llm anthropic
Full Changelog: v0.9.1...v0.9.2
ExplainThisRepo v0.9.1
Add cross-platform standalone binaries.
- macOS (arm64, x64)
- Linux (arm64, x64)
- Windows (x64)
ExplainThisRepo v0.9.0 - Multi-LLM Architecture
ExplainThisRepo is now model-agnostic.
This release introduce a pluggable multi-LLM architecture with support for Gemini, OpenAI, and Ollama.
Users can now select the model backend at runtime using --llm
Highlights
-
Pluggable provider architecture
-
Runtime model selection via
--llm -
Structured multi-provider configuration
-
Delegated provider diagnostics
-
Clean separation between CLI and vendor SDK logic
Architecture Changes
-
Provider Abstraction Layer
-
Introduced LLMProvider base contract
-
Enforced
validate_config,generate, anddoctor -
Removed direct Gemini coupling from generation pipeline
New generation flow:
CLI → generate → registry → selected providerProvider Registry
-
Centralized provider resolution
-
Config-based default provider selection
-
Runtime override via
--llm -
Removed global runtime override state
Concrete Providers
Implemented:
-
Gemini
-
OpenAI
-
Ollama (local and cloud-routed)
Each provider now owns:
-
Client initialization
-
Configuration validation
-
Error handling
-
Diagnostics
No vendor-specific logic remains in CLI or core modules.
Configuration Changes
- Structured multi-provider config format:
[llm]
provider = "gemini"
[providers.gemini]
api_key = "..."[llm]
provider = "openai"
[providers.openaii]
api_key = "..."[llm]
provider = "ollama"
[providers.ollama]
model = "llama3"
host = "http://localhost:11434"explainthisrepo init now supports selecting and configuring:
-
Gemini
-
OpenAI
-
Ollama
Runtime Model Selection
Models can be selected per command:
explainthisrepo owner/repo --llm gemini
explainthisrepo owner/repo --llm openai
explainthisrepo owner/repo --llm ollama--llm works with all modes.
Doctor Improvements
-
Diagnostics delegated to active provider
-
Removed hard-coded Gemini assumptions
-
Respects config and runtime overrides
Optional Dependencies
Provider SDKs are installed via extras:
pip install explainthisrepo[gemini]
pip install explainthisrepo[openai]Ollama requires no additional Python dependency.
⚠ Breaking Changes
Config schema changed from single-provider to structured multi-provider format.
Users must re-run:
explainthisrepo initafter upgrading.
Full Changelog: v0.6.0...v0.9.0