@ondeinference / cli / commits / 8b78550

Update docs and comments for clarity and add Onde links

- Improve documentation and comments for clarity and consistency - Add or update links to ondeinference.com and Onde SDK in READMEs - Clarify install instructions and add references to full install matrix - Refine code comments for accuracy and readability

keypair34 committed May 3, 2026 at 13:01 UTC 8b785502b2c798fadb47bed1bf432d2c35728479
10 files changed +37 -38
README.md
+3 -3
@@ -5,7 +5,7 @@
5 <h1 align="center">Onde Inference CLI</h1>
6
7 <p align="center">
8 - Command-line interface for <a href="https://ondeinference.com">Onde Inference</a>.
8 + Command-line interface for <a href="https://ondeinference.com/">Onde Inference</a>.
9 </p>
10
11 <p align="center">
@@ -28,7 +28,7 @@ Manage your Onde Inference account, fine-tune local models, and export them to G
28
29 ## Install
30
31 -[Install onde-cli](https://github.com/ondeinference/onde-cli) with your favorite tool.
31 +[Install onde-cli](https://github.com/ondeinference/onde-cli) with your favorite tool. For package docs and the full install matrix, see <https://ondeinference.com/cli>.
32
33 ### npm
34
@@ -152,7 +152,7 @@ For rank 8 on a 0.6B model, the adapter is about 1.5 MB. From the fine-tune comp
152 - `m` to merge the adapter into the base model
153 - `g` to export the merged model to GGUF
154
155 -The resulting GGUF loads directly in the Onde SDK for on-device inference.
155 +The resulting GGUF loads directly in the [Onde SDK](https://ondeinference.com/sdk) for on-device AI inference.
156
157 ### Supported base models
158
build.rs
+5 -6
@@ -1,9 +1,8 @@
1 fn main() {
2 - // Load .env if present (local dev). In CI the vars are injected directly
3 - // as environment variables, so this is a no-op there.
2 + // Load .env for local builds. In CI these vars already come from the environment.
3 let _ = dotenvy::dotenv();
4
6 - // Required variables — build fails if missing.
5 + // These must be present or the build should fail.
6 for var in [
7 "ONDE_APP_ID",
8 "ONDE_APP_SECRET",
@@ -25,7 +24,7 @@ fn main() {
24 }
25 }
26
28 - // Optional variables — baked in when present, empty string when absent.
27 + // Optional vars: bake them in when present, use an empty string otherwise.
28 {
29 let var = "HF_TOKEN";
30 println!("cargo:rerun-if-env-changed={var}");
@@ -34,12 +33,12 @@ fn main() {
33 println!("cargo:rustc-env={var}={val}");
34 }
35 Err(_) => {
37 - // Forward an empty value so env!() still compiles.
36 + // Keep env!() happy even when the token is missing.
37 println!("cargo:rustc-env={var}=");
38 }
39 }
40 }
41
43 - // Rebuild whenever .env itself changes.
42 + // Re-run the build script if .env changes.
43 println!("cargo:rerun-if-changed=.env");
44 }
npm/onde-cli/README.md
+2 -2
@@ -5,7 +5,7 @@
5 <h1 align="center">@ondeinference/cli</h1>
6
7 <p align="center">
8 - A terminal app for your Onde Inference account, plus local model fine-tuning.
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">
@@ -122,7 +122,7 @@ A rank-8 adapter for the 0.6B model is about 1.5 MB, so the output stays pretty
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) for on-device inference.
125 +The exported file loads directly in the [Onde SDK](https://ondeinference.com/sdk) for on-device inference.
126
127 ---
128
npm/onde-cli/src/index.ts
+4 -4
@@ -3,9 +3,9 @@
3 import { spawnSync } from "child_process";
4
5 /**
6 - * Returns the executable path which is located inside node_modules
7 - * The naming convention is cli-OS-ARCH
8 - * If the platform is win32 or cygwin, executable will include a .exe extension.
6 + * Return the bundled executable path from node_modules.
7 + * Package names follow the cli-OS-ARCH pattern.
8 + * Windows builds use the .exe suffix.
9 * @see https://nodejs.org/api/os.html#osarch
10 * @see https://nodejs.org/api/os.html#osplatform
11 * @example "x/xx/node_modules/cli-darwin-arm64"
@@ -30,7 +30,7 @@ function getExePath() {
30 }
31
32 /**
33 - * Runs the application with args using nodejs spawn
33 + * Run the bundled executable with the current CLI args.
34 */
35 function run() {
36 const args = process.argv.slice(2);
npm/scripts/render-main-package.cjs
+2 -2
@@ -16,7 +16,7 @@ const vars = {
16 };
17
18 /**
19 - * Replace every `${key}` in the template with the corresponding value from vars.
19 + * Replace `${key}` placeholders in the template with values from vars.
20 */
21 function interpolate(template, variables) {
22 return template.replace(/\$\{(\w+)\}/g, (match, key) => {
@@ -25,7 +25,7 @@ function interpolate(template, variables) {
25 });
26 }
27
28 -// Read and interpolate package-main.json.tmpl
28 +// Read package-main.json.tmpl and fill in the release version.
29 const template = fs.readFileSync(
30 path.join(npmRoot, "package-main.json.tmpl"),
31 "utf-8",
npm/scripts/render-platform-package.cjs
+4 -4
@@ -17,7 +17,7 @@ const packageDirectory = path.resolve(npmRoot, packageName);
17
18 fs.mkdirSync(packageDirectory, { recursive: true });
19
20 -// Variable map for template interpolation
20 +// Values we drop into the templates.
21 const vars = {
22 node_pkg: packageName,
23 node_version: version,
@@ -26,7 +26,7 @@ const vars = {
26 };
27
28 /**
29 - * Replace every `${key}` in the template with the corresponding value from vars.
29 + * Replace `${key}` placeholders in the template with values from vars.
30 */
31 function interpolate(template, variables) {
32 return template.replace(/\$\{(\w+)\}/g, (match, key) => {
@@ -35,7 +35,7 @@ function interpolate(template, variables) {
35 });
36 }
37
38 -// Read and interpolate package.json.tmpl
38 +// Read package.json.tmpl and fill it in.
39 const packageTemplate = fs.readFileSync(
40 path.join(npmRoot, "package.json.tmpl"),
41 "utf-8",
@@ -45,7 +45,7 @@ fs.writeFileSync(
45 interpolate(packageTemplate, vars),
46 );
47
48 -// Read and interpolate README.md.tmpl
48 +// Read README.md.tmpl and fill it in.
49 const readmeTemplate = fs.readFileSync(
50 path.join(npmRoot, "README.md.tmpl"),
51 "utf-8",
nuget/onde-cli/README.md
+1 -1
@@ -20,7 +20,7 @@ dotnet tool update --global Onde.Cli
20 onde
21 ```
22
23 -That opens the terminal UI for account management, app setup, and local model fine-tuning.
23 +That opens the terminal UI for account management, app setup, and local model fine-tuning. For package details, platform notes, and the full install matrix, see <https://ondeinference.com/cli>.
24
25 If you want a quick background read on the inference side, Onde has a short note on the [forward pass](https://ondeinference.com/forward-pass).
26
pub/onde_cli/README.md
+1 -1
@@ -14,7 +14,7 @@ dart pub global activate onde_cli
14 onde
15 ```
16
17 -That opens the Onde terminal UI for account management, app setup, and local model fine-tuning.
17 +That opens the Onde terminal UI for account management, app setup, and local model fine-tuning. For package details, platform notes, and the full install matrix, see <https://ondeinference.com/cli>.
18
19 If you want a quick background read on the inference side, Onde has a short note on the [forward pass](https://ondeinference.com/forward-pass).
20
pypi/README.md
+3 -3
@@ -5,7 +5,7 @@
5 <h1 align="center">onde</h1>
6
7 <p align="center">
8 - <strong>A terminal app for managing Onde Inference apps and fine-tuning models locally.</strong><br>
8 + <strong>A terminal app for managing <a href="https://ondeinference.com/">Onde Inference</a> apps and fine-tuning models locally.</strong><br>
9 Sign in, assign models, and train adapters without bouncing between browser tabs.
10 </p>
11
@@ -35,7 +35,7 @@
35 pip install onde-cli
36 ```
37
38 -That installs the native `onde` binary for your platform. No compiler setup, no Node.js, no extra runtime to babysit.
38 +That installs the native `onde` binary for your platform. No compiler setup, no Node.js, no extra runtime to babysit. For package docs and the full install matrix, see <https://ondeinference.com/cli>.
39
40 ## What you get
41
@@ -157,7 +157,7 @@ Once the run finishes:
157 - press `m` to merge the adapter into the base weights
158 - press `g` to export the merged model to GGUF
159
160 -The exported file loads directly in the [Onde SDK](https://ondeinference.com) for on-device inference.
160 +The exported file loads directly in the [Onde SDK](https://ondeinference.com/sdk) for on-device AI inference.
161
162 ## Other ways to install
163
src/app.rs
+12 -12
@@ -12,17 +12,17 @@ use {
12 tokio::sync::mpsc,
13 };
14
15 -// ui.rs imports OndeApp and OndeModel from here instead of depending on the SDK directly.
15 +// ui.rs pulls OndeApp and OndeModel from here so it does not have to depend on the SDK directly.
16 pub use smbcloud_gresiq_sdk::{OndeApp, OndeModel};
17
18 -// Onde is a tenant in smbCloud Auth. These identify this CLI to the backend.
19 -// smbCloud Auth credentials — baked in at compile time from the environment.
20 -// Set these in .env for local builds; inject as secrets in CI.
18 +// Onde is a tenant in smbCloud Auth. These values identify the CLI to the backend.
19 +// They are baked in at compile time from the environment.
20 +// Put them in .env for local builds, or inject them as CI secrets.
21 pub(crate) const ONDE_APP_ID: &str = env!("ONDE_APP_ID");
22 pub(crate) const ONDE_APP_SECRET: &str = env!("ONDE_APP_SECRET");
23 pub(crate) const HF_TOKEN: &str = env!("HF_TOKEN");
24
25 -// GresIQ API credentials for the Onde tenant — distinct from Auth above.
25 +// GresIQ credentials for the same tenant. These are separate from Auth.
26 pub(crate) const GRESIQ_API_KEY: &str = env!("GRESIQ_API_KEY");
27 pub(crate) const GRESIQ_API_SECRET: &str = env!("GRESIQ_API_SECRET");
28
@@ -100,9 +100,9 @@ pub struct AdapterEntry {
100 impl AdapterEntry {
101 /// Classify the location of this artifact for display purposes.
102 ///
103 - /// - `"Onde Inference"` — inside the shared App Group container
104 - /// - `"HF Cache"` — inside `~/.cache/huggingface/hub` or `$HF_HOME`
105 - /// - The raw path string — anything else (custom / local export)
103 + /// - `"Onde Inference"`: inside the shared App Group container
104 + /// - `"HF Cache"`: inside `~/.cache/huggingface/hub` or `$HF_HOME`
105 + /// - the raw path string: anything else, usually a custom or local export
106 pub fn location_label(&self) -> String {
107 let path_str = self.path.to_string_lossy();
108
@@ -121,7 +121,7 @@ impl AdapterEntry {
121 return "HF Cache".to_string();
122 }
123
124 - // Custom / local path — show the directory
124 + // For custom or local paths, just show the directory.
125 self.path
126 .parent()
127 .map(|p| p.to_string_lossy().to_string())
@@ -130,11 +130,11 @@ impl AdapterEntry {
130
131 /// Whether this GGUF should show the upload-to-HuggingFace UI.
132 ///
133 - /// Only locally fine-tuned / exported models (not from a known HF cache)
134 - /// are candidates for uploading — models already on HF don't need it.
133 + /// Only local fine-tune outputs should get the upload UI.
134 + /// If the model already came from a known HF cache, skip it.
135 pub fn is_uploadable(&self) -> bool {
136 let path_str = self.path.to_string_lossy();
137 - // Not in the Onde app group (those are downloaded from HF)
137 + // App Group files were downloaded from HF, so skip them.
138 if path_str.contains("group.com.ondeinference.apps") {
139 return false;
140 }