development
md 153 lines 4.89 KB
Rendered Raw
1 <p align="center">
2 <img src="https://raw.githubusercontent.com/ondeinference/onde/main/assets/onde-inference-logo.svg" alt="Onde Inference" width="80">
3 </p>
4
5 <h1 align="center">@ondeinference/cli</h1>
6
7 <p align="center">
8 A terminal app for your <a href="https://ondeinference.com/">Onde Inference</a> account, plus local model fine-tuning.
9 </p>
10
11 <p align="center">
12 <a href="https://www.npmjs.com/package/@ondeinference/cli"><img src="https://img.shields.io/npm/v/@ondeinference/cli?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
13 <a href="https://crates.io/crates/onde-cli"><img src="https://img.shields.io/crates/v/onde-cli?style=flat-square&labelColor=17211D&color=235843" alt="crates.io"></a>
14 <a href="https://pypi.org/project/onde-cli/"><img src="https://img.shields.io/pypi/v/onde-cli?style=flat-square&labelColor=17211D&color=235843" alt="PyPI"></a>
15 <a href="https://pub.dev/packages/onde_cli"><img src="https://img.shields.io/pub/v/onde_cli?style=flat-square&labelColor=17211D&color=235843" alt="pub.dev"></a>
16 <a href="https://www.nuget.org/packages/Onde.Cli"><img src="https://img.shields.io/nuget/v/Onde.Cli?style=flat-square&labelColor=17211D&color=235843" alt="NuGet"></a>
17 <a href="https://ondeinference.com"><img src="https://img.shields.io/badge/ondeinference.com-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
18 </p>
19
20 ---
21
22 ## Install
23
24 ```sh
25 npm install -g @ondeinference/cli
26 ```
27
28 npm installs the right native binary for your platform automatically.
29
30 It works on:
31
32 - macOS (Apple Silicon and Intel)
33 - Linux (x64 and arm64)
34 - Windows (x64 and arm64)
35
36 ### Other ways to install
37
38 | Method | Command |
39 |---|---|
40 | Homebrew | `brew install ondeinference/homebrew-tap/onde` |
41 | pip | `pip install onde-cli` |
42 | uv | `uv tool install onde-cli` |
43 | Dart pub | `dart pub global activate onde_cli` |
44 | .NET tool | `dotnet tool install --global Onde.Cli` |
45 | Cargo | `cargo install onde-cli` |
46
47 ---
48
49 ## Run it
50
51 ```sh
52 onde --tui
53 ```
54
55 That opens the terminal UI. Plain `onde` prints usage and exits.
56
57 From there you can:
58
59 - sign up or sign in
60 - create and manage apps
61 - assign models
62 - fine-tune supported local models
63 - export merged models to GGUF
64
65 No browser needed.
66
67 ## Basic keys
68
69 | Key | Action |
70 |---|---|
71 | `Tab` | Move between fields |
72 | `Enter` | Submit or confirm |
73 | `Ctrl+L` | Go to sign in |
74 | `Ctrl+N` | Go to create account |
75 | `Ctrl+C` | Quit |
76
77 ---
78
79 ## Fine-tuning
80
81 `onde` can fine-tune Qwen2, Qwen2.5, and Qwen3 safetensors models with LoRA.
82
83 Training runs locally:
84 - Metal on Apple Silicon
85 - CPU on other platforms
86
87 So yes, no cloud training setup and no Python environment to babysit.
88
89 If you want a quick mental model for what the network is doing once it starts running, Onde has a short write-up on the [forward pass](https://ondeinference.com/forward-pass).
90
91 ### Supported base models
92
93 | Model | Size |
94 |---|---|
95 | `Qwen/Qwen3-0.6B` | ~1.2 GB |
96 | `Qwen/Qwen2.5-1.5B-Instruct` | ~3.0 GB |
97 | `Qwen/Qwen3-1.7B` | ~3.4 GB |
98 | `Qwen/Qwen3-4B` | ~8.0 GB |
99
100 Only safetensors models can be fine-tuned. GGUF models are already quantized, so their weights are not differentiable.
101
102 ### Training data
103
104 Use one JSON object per line. Each object needs a `text` field containing the full conversation in Qwen's chat template.
105
106 ```jsonl
107 {"text": "<|im_start|>user\nWhat is the boiling point of water?<|im_end|>\n<|im_start|>assistant\n100°C at sea level.<|im_end|>"}
108 ```
109
110 ### Running a fine-tune
111
112 1. Open the Models tab.
113 2. Pick a safetensors model with `↑` / `↓`.
114 3. Press `f` to open the fine-tune config.
115 4. Set your data path, LoRA rank (default `8`), epochs (default `3`), and learning rate (default `0.0001`).
116 5. Start training.
117
118 A rank-8 adapter for the 0.6B model is about 1.5 MB, so the output stays pretty small.
119
120 ### After training
121
122 - Press `m` to merge the adapter into the base weights.
123 - Press `g` to export the merged model to GGUF.
124
125 The exported file loads directly in the [Onde SDK](https://ondeinference.com/sdk) for on-device inference.
126
127 ---
128
129 ## What is Onde?
130
131 [Onde Inference](https://ondeinference.com) is for running LLMs on the user's device. No server round-trips, no sending prompts off to somebody else's machine.
132
133 It ships as native SDKs for:
134
135 <p align="center">
136 <a href="https://github.com/ondeinference/onde-swift">Swift</a>&ensp;·&ensp;<a href="https://pub.dev/packages/onde_inference">Flutter</a>&ensp;·&ensp;<a href="https://www.npmjs.com/package/@ondeinference/react-native">React Native</a>&ensp;·&ensp;<a href="https://crates.io/crates/onde">Rust</a>
137 </p>
138
139 The CLI is for account management and local fine-tuning. The SDKs are what you ship in your app.
140
141 ---
142
143 ## Debug
144
145 Logs are written to `~/.cache/onde/debug.log`.
146
147 ## License
148
149 Dual-licensed under [MIT](https://github.com/ondeinference/onde-cli/blob/main/LICENSE-MIT) and [Apache 2.0](https://github.com/ondeinference/onde-cli/blob/main/LICENSE-APACHE).
150
151 ## Copyright
152
153 © 2026 [Splitfire AB](https://5mb.app) ([Onde Inference](https://ondeinference.com)).