bots-garden/mini-mepublic Fork 0
d72271127802973540c648bfb372176cdaaa8e4f
Commits
Clone
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

💾 Saved. d722711 · on d72271127802973540c648bfb372176cdaaa8e4f · k33g · 7h ago
getting-started.md · 80 lines · 3.0 KBmarkdown
Blame HistoryOpen raw

Tutorial: your first session with mini-me

By the end of this tutorial, you will have built the mm binary, started it against Docker Model Runner, asked it one question that makes it run a shell command, and left cleanly. No prior knowledge of the project is required.

Prerequisites

  • Go 1.25 or later on your PATH (go version answers).
  • Docker Desktop with Docker Model Runner enabled and reachable on http://localhost:12434.
  • The model named in agent.yaml pulled locally. The file shipped with the project names huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M; pull it with docker model pull <that name>.
  • A terminal open at the root of the repository (the directory that holds main.go and agent.yaml).

Step 1 — Build the binary

Type:

go build -o mm .

You should see no output at all. A file named mm now sits in the current directory.

We have just compiled the whole agent into a single executable.

Step 2 — Start the agent

Type:

./mm

You should see a banner like this one (the model name is the one from agent.yaml):

config: agent.yaml | provider: dmr | model: huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M | ctx: unknown | tools: bash, read_file, write_file, edit_file | skills: 0
Agent ready. Commands: "/quit" to exit, "/abort" to stop current generation, "/compact" to compress the history, "/new" to start a new session.
Shortcut: Ctrl+C to abort generation, or Ctrl+C at prompt to quit.

>

If a dimmed [warning: dmr: nothing answers at …] line appears above the banner, Docker Model Runner is not running: start it, then run ./mm again. The agent starts anyway, but the next step would fail.

We have just loaded the configuration, connected to the model server, and declared the tools the model may call.

Step 3 — Ask a question that needs a command

At the > prompt, type:

list the files in this directory

You should see, in order: a spinner while the model thinks, a line starting with 🛠️ bash: showing the command the model chose (typically ls or ls -la), the first lines of that command's output indented and dimmed, then the model's answer in plain text. The turn ends with a dimmed recap such as:

⚙ 1 command(s)

followed by the numbered list of the commands that ran, in green.

We have just watched the agent loop once: the model asked for a tool, the tool ran, its output went back to the model, and the model answered.

Step 4 — Leave

At the > prompt, type:

/quit

The program exits. Pressing Ctrl+C at the prompt does the same and prints Goodbye. first.

What now?

You have built mm, run one tool-calling turn, and exited. To go further:

  • To run it on llama.cpp, host it in an editor, or add skills → see the how-to guides
  • To look up a flag, a YAML key or a slash command → see the reference
  • To understand how the loop and the two front ends fit together → see the explanation
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Tutorial: your first session with mini-me

By the end of this tutorial, you will have built the `mm` binary, started it against Docker Model Runner, asked it one question that makes it run a shell command, and left cleanly. No prior knowledge of the project is required.

## Prerequisites

- Go 1.25 or later on your `PATH` (`go version` answers).
- Docker Desktop with Docker Model Runner enabled and reachable on `http://localhost:12434`.
- The model named in `agent.yaml` pulled locally. The file shipped with the project names `huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M`; pull it with `docker model pull <that name>`.
- A terminal open at the root of the repository (the directory that holds `main.go` and `agent.yaml`).

## Step 1 — Build the binary

Type:

```bash
go build -o mm .
```

You should see no output at all. A file named `mm` now sits in the current directory.

We have just compiled the whole agent into a single executable.

## Step 2 — Start the agent

Type:

```bash
./mm
```

You should see a banner like this one (the model name is the one from `agent.yaml`):

```
config: agent.yaml | provider: dmr | model: huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M | ctx: unknown | tools: bash, read_file, write_file, edit_file | skills: 0
Agent ready. Commands: "/quit" to exit, "/abort" to stop current generation, "/compact" to compress the history, "/new" to start a new session.
Shortcut: Ctrl+C to abort generation, or Ctrl+C at prompt to quit.

>
```

If a dimmed `[warning: dmr: nothing answers at …]` line appears above the banner, Docker Model Runner is not running: start it, then run `./mm` again. The agent starts anyway, but the next step would fail.

We have just loaded the configuration, connected to the model server, and declared the tools the model may call.

## Step 3 — Ask a question that needs a command

At the `>` prompt, type:

```
list the files in this directory
```

You should see, in order: a spinner while the model thinks, a line starting with `🛠️  bash:` showing the command the model chose (typically `ls` or `ls -la`), the first lines of that command's output indented and dimmed, then the model's answer in plain text. The turn ends with a dimmed recap such as:

```
⚙ 1 command(s)
```

followed by the numbered list of the commands that ran, in green.

We have just watched the agent loop once: the model asked for a tool, the tool ran, its output went back to the model, and the model answered.

## Step 4 — Leave

At the `>` prompt, type:

```
/quit
```

The program exits. Pressing `Ctrl+C` at the prompt does the same and prints `Goodbye.` first.

## What now?

You have built `mm`, run one tool-calling turn, and exited. To go further:

- To run it on llama.cpp, host it in an editor, or add skills → see the [how-to guides](../how-to/)
- To look up a flag, a YAML key or a slash command → see the [reference](../reference/)
- To understand how the loop and the two front ends fit together → see the [explanation](../explanation/)