March 2, 2026

Simplification and First-Party Tools

Shifted to a single-process architecture and introduced a background auto-installation system for trusted default tools.

The Single-Process Refactor

Chalie has undergone a major architectural consolidation. We’ve moved away from a multi-container Docker and Redis setup in favor of a leaner, single-process model. The consumer.py entry point has been replaced by run.py, where all workers now operate as daemon threads. To support this without losing functionality, I’ve implemented a thread-safe in-memory MemoryStore with a Redis-compatible API and consolidated our database logic into a single SQLite schema.sql file. Communication has also been modernized, replacing SSE with a WebSocket endpoint for real-time updates.

This shift significantly lowers the barrier to entry for local development and deployment. We also introduced a native voice blueprint using faster-whisper and KittenTTS, which now runs directly in the Python environment rather than requiring a dedicated Docker image.

Trusted Subprocesses and Auto-Installation

To make the “out of the box” experience smoother, I’ve introduced a default tool catalog. The Weather tool has been converted from a Docker-sandboxed execution model to a “trusted subprocess.” This makes it significantly faster and removes the hard dependency on Docker for core features.

On startup, Chalie now checks for tools marked as installs_by_default in the embodiment_library.json. If they are missing from the local environment, a background thread fetches the latest release tarballs from GitHub. I’ve spent some time ensuring this is handled safely—implementing path traversal and symlink protection during extraction, and using atomic staging directories for the final install.

Installer Updates

For users who prefer a minimal footprint, the installer now supports a --disable-default-tools flag. This creates a .no-default-tools marker file that suppresses the auto-install behavior. I’ve also documented the full behavior and the expected return fields for the Weather tool in a new guide to help developers understand how to contribute additional first-party tools to the library.