rust · local models · sbx · 5 min read

Learning Rust gently with Mellum2-12B-A2.5B-Instruct and Mini Me (Part 1)

Learning Rust from scratch with a small local coding model: Mini Me and Mellum2-12B-A2.5B as a teacher for a first program, structs, mutability and methods.

K
k33gOct 19, 2026 · 5 min
Learning Rust gently with Mellum2-12B-A2.5B-Instruct and Mini Me (Part 1)

For me, developing Mini Me is a way to better understand how to make good use of small local models, with all their constraints.

My goal today: can I start learning Rust with a "not too big" local model, using a "coding" agent optimized for local models (meaning the agent's implementation takes into account the constraints that come with using local models)?

This experiment will help me validate my choice of model (Mellum2-12B-A2.5B) and the Mini Me settings.

And I have to admit there's a 2nd experiment behind all this: I need to get my brain working again (today, no Claude Code, learning and developing "almost the old-fashioned way").

My working environment

I configured an agent to help me discover a new language.

agent.yaml

You'll find all my settings here: https://rickub.com/bots-garden/model-mellum/blob/main/agent.yaml, but what matters is that I disabled all the tools, except these two:

yaml
fetchContentTool: true
saveAnswerTool: true

Today, all I need is a "Mini Teacher" who explains things to me, and I do the rest myself.

saveAnswerTool: true enables a built-in tool, save_answer, which lets you ask the agent to save its last answer.

Next, I needed a "code-oriented" model.

The model

I went with Mellum2-12B-A2.5B-Instruct-GGUF-Q4_K_M. If you run into accuracy issues, you can try a less aggressive quantization: Mellum2-12B-A2.5B-Instruct-GGUF-Q8_0. Mellum2 is an LLM trained by JetBrains, and it has good "knowledge" of various programming languages.

I use Llmman to serve my model. For more information, you can read this post llmman, the unified interface for language models, and it's now installed with sbx (since sbx v0.46.0, released on September 28, 2026, the macOS and Windows bundles include llmman v0.1.418, which downloads the llama.cpp runtime by itself).

I'm currently writing a small guide on configuring Mini Me with local models; a 1st version should be available soon.

My IDE

I use Zed Editor with Mini Me and Rust. The Rust toolchain and Mini Me run in an sbx sandbox, and Zed Editor connects to it over SSH. You can find more information about my setup in this blog post: Using Mini Me in a secure and comfortable development environment.

So here I go with my learning "in slow motion, 80% with my 🧠, 20% with 🤖".

How to make my 1st Rust program

raw
Explain me how to create my first Rust program

Then I asked Mini Me to save the explanation:

raw
save it as 01-first-rust-prog.md

This triggers the new built-in tool save_answer

The result is here 01-first-rust-prog.md

I followed the explanations, and I have my 1st "Hello World" in Rust

hello in rust
hello in rust

What's interesting (and useful) are the 2 sections generated at the end of the tutorial, "Pitfalls" and "To go further", and you'll see that the agent does it every time.

Moving forward gently: structs

Adding a struct

raw
how can I add a Human struct, with a name and age to the program?

Then:

raw
save it as 02-human-struct.md

The result is here 02-human-struct.md

Here too, I followed the explanations:

Human structure
Human structure
Human structure
Human structure

How to change the field values of person

raw
How can I change the values of person?

Then:

raw
save it to 03-human-struct-change.md

The result is here 03-human-struct-change.md

But actually, the agent only suggested a way to input the information, and then create an instance of the struct (person) with the entered values:

rust
println!("Enter your name:");
let mut name = String::new();
io::stdin()
    .read_line(&mut name)
    .expect("Failed to read line");

println!("Enter your age:");
let mut age_input = String::new();
io::stdin()
    .read_line(&mut age_input)
    .expect("Failed to read line");

let age: u32 = age_input.trim().parse().expect("Please enter a valid number");

let person = Human {
    name: name.trim().to_string(),
    age,
};

So I try asking differently:

raw
And how to change the values of an existing person?

Then:

raw
save it to 04-change-existing-person.md

The result is here 04-change-existing-person.md

This time, Mini Me suggests creating a mutable instance of Human:

rust
let mut person = Human {
    name: String::from("Alice"),
    age: 30,
};

Before tinkering with my main.rs again, I ask it something else:

raw
Explain the mutable concept

Then:

raw
save it to 05-mutability.md

The result is here 05-mutability.md

Reading the explanations, I understand that the mut keyword will let me reach my goal (changing the field values of person), and I learn that in Rust, variables are immutable by default.

Mutability
Mutability

So I made a quick change to check, and it works:

Mutability
Mutability

Well, it's rather nice to be back at normal speed 😉, so I keep going a bit.

How to add a method to Human

raw
Explain how to add a greeting method to the Human structure

Then:

raw
save it to 06-struct-method.md

The result is here 06-struct-method.md

So I updated the code in main.rs, and once again Mini Me's advice was good:

greet method
greet method

I'll stop here for today in my Rust learning journey. For now, the Mini Me settings and the choice of the Mellum2-12B-A2.5B-Instruct model seem relevant for this use case: learning a new language.

You can follow my progress here: https://rickub.com/bots-garden/model-mellum.

K

Written by

k33g

Keep reading

Hello Mini Me: an agent born while preparing a talk for Devoxx

Meet Mini Me, a coding agent born from a Devoxx talk on the agent loop, built for small local models with guardrails against loops and hallucinations.

Oct 3, 2026
Hello Mini Me: an agent born while preparing a talk for Devoxx

Building a team of Mini Mes with ACP

Build a team of local Mini Me agents talking over ACP: a coordinator that routes your Go and Rust questions to two documentation specialists.

Oct 15, 2026
Building a team of Mini Mes with ACP

Mini Me release v0.3.0

What is new in Mini Me v0.3.0, the Devoxx Belgium release: approval mode, agents calling agents, request traces, JSON answers, AGENTS.md and an sbx kit.

Oct 10, 2026
Mini Me release v0.3.0

Responses

0 Comments

No comments yet. Be the first to comment!

Related reading

From other blogs

A mini code agent with Docker Agent - Part 8: a local agent to learn Rust

k33g_org's Blog