Wombat is a multi-criteria environmental impact tracker for digital and AI services.
Its goal is to streamline the use of astounding work being done by others on environmental footprint calculators, methodology and referential data (namely works from Boavizta, SustainableAIGroup, Ecologits..) and use it where it has the biggest impact:
To do that, we focused on a few key ideas:
In short, Wombat is:
More complete documentation can be found over at GitHub.
With docker, you can run it as a container like this:
docker run -p 8080:8080 illuin/wombat
You can override the default configuration and supply your monitored environments by mounting local YAML files into the container:
docker run -p 8080:8080 \
-v $(pwd)/application.yaml:/deployments/config/application.yaml:ro \
-v $(pwd)/monitored-environments.yaml:/deployments/monitored/monitored-environments.yaml:ro \
illuin/wombat
application.yaml overrideHere is an example overriding the connectors to point to local service containers (e.g. running Boavizta and EcoLogits locally) and disabling S3 backups:
connector:
boavizta:
uri: "http://host.docker.internal:5001/v1/"
ecologits:
uri: "http://host.docker.internal:5002/"
backup:
enabled: false
monitored-environments.yamlHere is a minimal environment configuration tracking a Kubernetes cluster and an LLM service:
environments:
production:
id: production
assets:
# This type works by querying the kubernetes metrics API and gathering CPU/RAM load factors for each deployed container.
- type: tech.illuin.wombat-module.kubernetes-api
id: prod-cluster
environment-id: production
name: Production Cluster
namespace: my-project-namespace
config-path: /path/to/kubeconfig
profile:
provider: aws
instance-type: c5.xlarge
location: FRA
lifespan: 43800
# This type works with a request yearly estimate and will prorate it dynamically.
# This is the bare minimum available in some situations.
- type: tech.illuin.wombat-module.llm-static
id: prod-llm
environment-id: production
name: LLM Services
profile:
models:
- provider: mistralai
model: mistral-large-latest
location: FRA
request-profile:
output-token-count: 500
request-per-year: 500000
- provider: openai
model: mistral-large-latest
location: SWE
request-profile:
output-token-count: 150
request-per-year: 8000000
Wombat allows user to provide custom modules built with wombat-core (see repository) to extend its functionality.
Custom modules (e.g. wombat-simulator) are loaded at startup from every JAR found in module.extension.path
(defaults to extensions, relative to the working directory, i.e. app/extensions when running from app/). Override it
with -Dmodule.extension.path=... or MODULE_EXTENSION_PATH=....
When starting up the app with a custom extension, you should see logs like these:
2026-10-01 16:42:56,837 INFO [tech.illuin.wombat.module.extension.DynamicExtensionLoader] (Quarkus Main Thread) Loading extensions from /path/to/extensions (1 jar(s))
2026-10-01 16:42:56,839 INFO [tech.illuin.wombat.module.extension.DynamicExtensionLoader] (Quarkus Main Thread) Discovered extension module tech.illuin.wombat.module.simulator.k8s.KubernetesSimulatorModule for asset-type tech.illuin.wombat-simulator.kubernetes
2026-10-01 16:42:56,839 INFO [tech.illuin.wombat.module.extension.DynamicExtensionLoader] (Quarkus Main Thread) Discovered extension module tech.illuin.wombat.module.simulator.llm.LLMSimulatorModule for asset-type tech.illuin.wombat-simulator.llm
2026-10-01 16:42:56,839 INFO [tech.illuin.wombat.module.WombatModuleConfig] (Quarkus Main Thread) Wiring 6 wombat module(s): [KubernetesSimulatedModule, LLMSimulatedModule, LLMStaticModule, KubernetesAPIModule, KubernetesSimulatorModule, LLMSimulatorModule]
Content type
Image
Digest
sha256:e842c9912…
Size
229.3 MB
Last updated
about 21 hours ago
docker pull illuin/wombat