Skip to content

Releases: calchiwo/ExplainThisRepo

ExplainThisRepo v0.20.1

06 Apr 16:41

Choose a tag to compare

What's Changed

  • fix: support android (termux) in launcher target resolution by @calchiwo in #209

Full Changelog: v0.20.0...v0.20.1

ExplainThisRepo v0.20.0

06 Apr 11:02

Choose a tag to compare

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 explainthisrepo

pip (Python source):

pip install explainthisrepo

Source

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

24 Mar 04:07

Choose a tag to compare

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

22 Mar 13:21

Choose a tag to compare

Add CLI aliases for faster and more flexible usage.

  • explain-this-repo for readability
  • etr for fast access
  • explainthisrepo remains unchanged

All commands map to the same implementation. No breaking changes

Full Changelog: v0.9.5...v0.9.6

ExplainThisRepo v0.9.5

18 Mar 07:22
7fe3b09

Choose a tag to compare

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

18 Mar 03:39

Choose a tag to compare

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

17 Mar 23:53

Choose a tag to compare

Added Groq Provider

Supports API key + explicit model selection via --llm groq

Full Changelog: v0.9.2...v0.9.3

ExplainThisRepo v0.9.2

17 Mar 23:24

Choose a tag to compare

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

05 Mar 11:36

Choose a tag to compare

Add cross-platform standalone binaries.

  • macOS (arm64, x64)
  • Linux (arm64, x64)
  • Windows (x64)

ExplainThisRepo v0.9.0 - Multi-LLM Architecture

03 Mar 23:23

Choose a tag to compare

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, and doctor

  • Removed direct Gemini coupling from generation pipeline

New generation flow:

CLI → generate → registry → selected provider

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

after upgrading.

Full Changelog: v0.6.0...v0.9.0