AI-powered development workflow automation
Project description
Smelt
Raw task in, refined code out.
Smelt is a CLI tool that drives AI coding agents through your project roadmap step by step. Define your steps, run smelt next, and let your agent do the work.
How it works
Smelt reads your roadmap from a local SQLite database, picks the next uncompleted step, builds context from your architecture and decision docs, and hands it off to an AI agent. When the agent finishes, you mark the step done and move on.
smelt next # run the next uncompleted step
smelt status # show all steps and their state
smelt add "..." # add a new step to the roadmap
smelt done <id> # manually mark a step as complete
Requirements
- Python 3.12+
- Aider installed and available in PATH
pip install aider-chat
Installation
uv tool install smelt
Or if you prefer pip:
pip install smelt
Getting started
Initialize a roadmap in your project:
cd your-project
smelt init
Add your first steps:
smelt add "Set up database models"
smelt add "Implement authentication"
smelt add "Write API endpoints"
Run the next step:
smelt next
Smelt will pass the step to Aider along with any context files it finds in your memory/ directory. Review the changes, then mark it done when you're happy:
smelt done
Context files
Smelt looks for the following files in a memory/ directory at your project root and passes them to the agent as read-only context:
| File | Purpose |
|---|---|
ARCHITECTURE.md |
High-level system design |
DECISIONS.md |
Key decisions and their rationale |
PROGRESS.md |
Current state of the project |
None of these are required. Smelt works without them, but the agent produces better output when it has context.
Configuration
Smelt is configured via environment variables:
| Variable | Default | Description |
|---|---|---|
SMELT_MODEL |
anthropic/claude-sonnet-4-5 |
Model passed to Aider |
SMELT_PROJECT |
. |
Path to your project root |
Copy .env.example to .env and adjust as needed.
Using a different agent
Aider is the default agent but Smelt is built with an adapter interface. You can implement your own:
from smelt.agents.base import Agent
class MyAgent(Agent):
def run(self, message: str, context_files: list[str]) -> bool:
# your implementation
...
Development
git clone https://github.com/yourname/smelt
cd smelt
uv sync
uv run pytest
make lint # ruff check + fix
make format # ruff format
make test # pytest
make check # all of the above
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smeltworkflow-0.1.1.tar.gz.
File metadata
- Download URL: smeltworkflow-0.1.1.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94556305bccd2e13a1b60939bc07a138f643e9f7d9f4babc66d4ce328f0603d5
|
|
| MD5 |
a7e479800633eafb70c9737f18e3905f
|
|
| BLAKE2b-256 |
4e913a8628d2fadaa94293f7290fb628713f65e9efa2cbb758ec5093f78cbaae
|
File details
Details for the file smeltworkflow-0.1.1-py3-none-any.whl.
File metadata
- Download URL: smeltworkflow-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49c10724ebb94b2ffd56f228a122d54dea76498a752e0831e17f4cb675caef7f
|
|
| MD5 |
e066979b1adaa11eaf70264f78721856
|
|
| BLAKE2b-256 |
3a6743a8e2851752a2379063944a0eccccff52a4d18f6a6c7095a7294cc78756
|