Skip to main content

English  ·  简体中文

MOLT 🦀

The coding agent that grows its own tools.

Most agents solve your task and forget everything they learned. MOLT doesn't forget. After every job it reflects on what it did, and when it spots a reusable pattern, it writes itself a new tool, tests it, and keeps it in a skill library. Next time the pattern shows up, the tool is already there.

Watch the toolbox compound:

$ molt run "tidy the config files" --learn --mock

── molt run — task ─────────────────────────────────────────────
  task: tidy the config files
  model: mock

── final answer ────────────────────────────────────────────────
  All done — I inspected the workspace and the job is complete.

── learn ───────────────────────────────────────────────────────
  ✔ grew a new tool: `parse_csv_line` → .molt/skills/parse_csv_line

$ molt skills list
  parse_csv_line    [project]  Parse a CSV line of key=value pairs into a dict.

$ molt run "parse some key=value config" --mock      # the tool is already there

That's the whole idea: your AI doesn't just code — it molts. It sheds the old, grows a new tool, and keeps it.


Why MOLT

  • It compounds. Every task can make the next one cheaper and more reliable. Your agent gets better at your codebase, not just smarter in general.
  • It's honest self-modification. A skill only enters the library after passing its own test. The agent can grow itself new tools, but they have to prove they work first.
  • It's shareable. molt export bundles your toolbox; molt install pulls someone else's. Your agent's hard-won skills become a library you can fork, star, and share.
  • It's yours. MIT, zero tracking, runs on any OpenAI-compatible model — DeepSeek by default.

Quickstart

# From PyPI (the package is published as `molt-agent`):
pip install molt-agent

# …or straight from source:
git clone https://github.com/houyongsheng/deepseek-harness-molt
cd deepseek-harness-molt
pip install -e .

export DEEPSEEK_API_KEY=sk-...

Run a task and let it learn:

molt run "add retry logic to the http client" --learn

No API key? Run the exact same loop with a built-in fake model:

molt run "tidy the config files" --learn --mock
molt evolve "polish the project" -n 5 --mock     # watch the toolbox grow

Commands

Command What it does
molt run "task" [--learn] Run one task. --learn keeps any reusable tool it finds.
molt evolve "goal" -n N Loop subtask + learn N times; watch the toolbox accumulate.
molt learn Re-run reflection over the last transcript.
molt skills list / show <n> / remove <n> Inspect the skill library.
molt export [--out DIR] Bundle your skills for sharing.
molt install <path-or-git-url> Pull someone else's skills into your toolbox.

How it works

   task ─▶ agent loop ─▶ answer
               │
               └──▶ reflect: "did I hit a reusable pattern?"
                        │ yes
                        ▼
                   author a skill (python + schema + test)
                        │
                   test it ── fail ─▶ discard
                        │ pass
                        ▼
                   commit to .molt/skills/
                        │
                        ▼
              next run loads it as a tool
  • Run — an agent loop with shell, read_file, write_file, plus every skill you've grown.
  • Reflect — a second LLM pass asks: was anything here reusable? If yes, it returns a skill as JSON.
  • Test — the skill's own test runs in a fresh subprocess; no test, no commit.
  • Reuse — skills become callable tools, project skills shadowing your home library.

Skills live at .molt/skills/<name>/ (project) and ~/.molt/skills/ (home). Each is plain files: skill.json (name/description/inputs), skill.py (def run(**kwargs)), test.py.

Sharing the toolbox

molt export --out ./my-agent-toolbox      # copy your skills + manifest
molt install /path/to/my-agent-toolbox    # or: molt install git@github.com:you/toolbox.git

That's the seed of an ecosystem: your agent's skills are a library, and libraries get forked, starred, and shared.

Trust & safety

  • Tested before committed. Untested or failing skills never enter the library.
  • Skills run in-process. MOLT is built for skills you or your project authored — treat others' skills the way you'd treat any code you pip install. Use --mock and a sandbox/container to evaluate before trusting.
  • Plain files, no lock-in. Your toolbox is just directories; delete it, share it, move it.

Roadmap (honest)

  • Skill dedup/merge so repeated patterns collapse into one tool
  • Skill evals — benchmark a skill's accuracy before/after you edit it
  • A registry command (molt publish) for a real community hub
  • Streaming the agent loop, richer built-in tools, --sandbox

License

MIT — go build something that grows itself.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

molt_agent-0.1.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

molt_agent-0.1.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file molt_agent-0.1.0.tar.gz.

File metadata

  • Download URL: molt_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.8

File hashes

Hashes for molt_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c14d98b0db449ae1d07deb5936eb714571374f2d25b5714547ec0b7703770755
MD5 416d8566061df2d8e4aea6482119b226
BLAKE2b-256 74aff6635d0f9a858c29fdf47dc7648a013bb907098b541e58f9d8e0ff53a842

See more details on using hashes here.

File details

Details for the file molt_agent-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: molt_agent-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.8

File hashes

Hashes for molt_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ded15472e3b1f8e77a4366b7522f4e337f419e052f5d5ab4f4eda80d3db4d1f5
MD5 4238c6251859e45e98af0afe1ebc8ffc
BLAKE2b-256 b415e5f4d7bfcb94a218809cd932961915f758a8c64b479e3124a68d30f28028

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page