cli

module
v0.0.0-...-2309fe3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2026 License: AGPL-3.0

README

Olares CLI

Go Version

olares-cli is the official CLI for installing and operating Olares — an AI-native, self-hosted personal cloud. It is a single static Go binary that drives every part of the Olares product (OS bootstrap, app market, file storage, dashboard, settings, cluster, profile auth), and is designed to be driven equally well by humans typing commands and by AI coding agents reading SKILL.md bundles.

The product surface this CLI mirrors:

  • Olares OS — Kubernetes-based personal cloud you install on a Linux host
  • Olares ID — your identity within Olares (<name>@olares.com)
  • Olares Dashboard / ControlHub / Files / Market / Settings — the SPAs you can also drive from the CLI

Why olares-cli?

  • Agent-native — every command tree ships a maintained SKILL.md so any agent (Cursor, Claude Code, Codex, OpenClaw, ...) can discover verbs, flags, and recovery flows
  • Wide coverage — Olares OS install/upgrade plus the full identity, files, market, dashboard, settings, and ControlHub surface from one binary
  • Olares-native auth — refresh tokens live in the OS keychain; access tokens auto-refresh on 401/403; profile model maps cleanly to multi-instance / multi-ID setups
  • Distributed two ways — persistent npm install -g @olares/cli client on macOS / Windows / Linux; or zero-install npx @olares/cli <verb> for one-offs. A first-run wizard, npx @olares/cli install, does both npm install -g and skill installation in one shot.

Install — which path fits you?

Your situation Use this Why
I'm already on an Olares host and want to use its CLI Use /usr/local/bin/olares-cli directly (and see "On a Linux Olares host" if you need the agent verbs the OS bundle doesn't ship) It's the OS-bundled copy, kept in sync via olares-cli upgrade.
I'm a first-time user and want one command to set up the CLI + skills npx @olares/cli@latest install
(Scenario A)
Runs npm install -g and skills add beclab/Olares for you. Does not install Olares OS.
I want to control a remote Olares from my dev box, CI, macOS, or Windows npm install -g @olares/cli@latest
(Scenario B)
Persistent install; olares-cli on PATH.
I just want to run one command quickly without installing npx @olares/cli@latest <verb>
(Scenario C)
No persistent files; ~1-2 s cold-start per invocation. Keychain/token caches persist per-user.
npx @olares/cli@latest install

The install verb is handled entirely by the Node shim, never by the Go binary. It runs two steps for you:

  1. npm install -g @olares/cli (or upgrade if you already have it).
  2. npx skills add beclab/Olares -y -g to install the six olares-* agent skills.

After it prints You are all set!, do the auth step yourself — it's interactive and ties to your Olares ID:

olares-cli profile login --olares-id <your-olares-id>
olares-cli profile current

What this command does NOT do: install Olares OS. The Linux host bootstrap stays curl -fsSL https://olares.sh | bash (see docs/manual/get-started). It also does not configure any app credentials — Olares uses the Olares ID directly, so no config init step is needed.

On a Linux host with an existing olares-cli in /usr/local/bin or /usr/bin: the wizard reads its --version and decides keep-vs-replace.

  • Release-grade (stable 1.12.7, or pre-releases -rc1 / -beta.1 / -alpha2) → kept; if npm config get prefix resolves to the same bin directory (typical Olares host: /usr/local), the wizard short-circuits the npm install -g attempt — no full install timeout — and exits with a side-by-side install block (npm install -g ... --prefix=$HOME/.olares-cli-npm + PATH export + npx skills add beclab/Olares -y -g) you can copy verbatim. The OS bundle is canonical for system-layer verbs and only olares-cli upgrade is supposed to replace it. See "On a Linux Olares host" for the long-form reference.
  • Dev / test / dirty (the Makefile placeholder 0.0.0-development, git describe outputs like 1.12.7-3-gabc1234-dirty, check.yaml's 1.12.7-12345678 PR builds, unparseable output) → removed so npm can install over the same path. If removal needs root, the wizard exits with a one-line sudo hint instead of silently failing.

Permission errors on Linux (EACCES while npm writes to /usr/lib/node_modules or /usr/local/lib/node_modules): typical for distro-packaged Node (apt install nodejs) where the global prefix is root-owned. The wizard surfaces the offending npm stderr plus a one-time fix that switches npm to a user-owned prefix (npm config set prefix ~/.npm-global + PATH) so global installs no longer need sudo and npx skills add -g writes under your user (not /root).

Local dev (install your build + local skills)

For working on the CLI itself: installs the binary you just built and the skills from your current checkout. Requires Go 1.24+ and a full repo clone — cli/go.mod has a relative replace into ../framework/oac, so a cli/-only clone won't build.

cd cli
sudo make install                                            # or: make install PREFIX="$HOME/.local"
npx skills add "$(pwd)/skills" --skill '*' -a cursor -g -y   # install the local checkout's skills
make uninstall                                               # remove the binary again

Step 2 points the skills CLI at the local cli/skills/ directory, so your in-progress edits are what get installed (not the published beclab/Olares copy). Notes:

  • Pick your agent with -a (cursor, claude-code, codex, ...). Without it, the CLI auto-detects, and when you run it through an AI agent it may pick an unsupported one and fail with does not support global skill installation.
  • Never run step 2 with sudo. It creates root-owned ~/.agents/skills/olares-* directories that later break reinstalls with EACCES. Only step 1 (make install into a system prefix) may need sudo.
  • On Windows, step 1 needs Git Bash / MSYS (for make and install); step 2 runs natively.
Client on a non-Olares machine (Scenario B)
# macOS / Windows / Linux dev box that talks to a remote Olares.
npm install -g @olares/cli@latest

# The package's only PATH-exposed bin is `olares-cli`, managed by npm itself.
# If an existing `olares-cli` is already at npm's target path (i.e. you're on
# a Linux Olares host where the OS bundle owns /usr/local/bin/olares-cli), npm
# refuses the install with EEXIST — your existing binary is never overwritten.
# See "On a Linux Olares host" below for the side-by-side workaround.

olares-cli profile login <your-olares-id>
olares-cli files ls /drive/Home
One-off ops (Scenario C)
# No persistent install; each invocation re-uses the npm cache. The OS keychain
# persists across invocations, so log in once — subsequent commands re-use it.
npx @olares/cli@latest profile login <your-olares-id>
npx @olares/cli@latest profile current
npx @olares/cli@latest files ls /drive/Home
Capabilities & limits of each install method
Method What it gives you Binary path What it can't / won't do
A — npx @olares/cli@latest install Superset of B: runs npm install -g @olares/cli (or upgrade) and npx skills add beclab/Olares -y -g in one shot. End state is the same as B, plus the six olares-* skills pre-installed. Same as B once the wizard finishes. The wizard itself is the Node shim from the npx cache. Does not install Olares OS (still curl -fsSL https://olares.sh | bash). Does not run profile login for you (interactive + needs your Olares ID). On a Linux host with an existing /usr/local/bin/olares-cli or /usr/bin/olares-cli, the wizard reads its --version: release-grade copies (stable / rc / beta / alpha) are kept and npm prints the --prefix / npx workarounds; dev / test / dirty / 0.0.0-development builds are removed so the npm copy can take over (re-run with sudo if the wizard exits with a permission hint).
B — npm install -g @olares/cli@latest Persistent olares-cli CLI on PATH (macOS / Windows / Linux). Use to talk to a remote Olares (login, files, market, dashboard, cluster, settings). <npm prefix>/bin/olares-cli (symlink managed by npm itself). On a Linux Olares host where /usr/local/bin/olares-cli already exists, npm aborts with EEXIST — see "On a Linux Olares host" for the side-by-side workaround. The npm wrapper auto-sets OLARES_CLI_REMOTE_ONLY=1, so host-side verbs (uninstall, upgrade, node, os, gpu, disk, wizard, user, osinfo, amdgpu) are hidden from --help and return unknown command. The install verb is intercepted by the Node shim and runs the Scenario A wizard. All of these are reachable only on an Olares host through the OS-bundled /usr/local/bin/olares-cli.
C — npx @olares/cli@latest <verb> Zero-install, runs any remote/identity verb without touching PATH. Great for CI one-shots, ephemeral containers, "just try it". ~/.npm/_npx/<hash>/.../vendor/olares-cli (only during the npx subprocess; cleared after) Same host-side-verbs restriction as B (same Node shim). Each invocation pays a ~1-2 s npx cold-start. Long watches (olares-cli market list --watch, olares-cli cluster pod logs -f) work but pay the cost up front. Keychain/token caches persist across npx invocations.
Install AI agent skills

The Scenario A wizard runs this for you. If you went the Scenario B / C route, run it manually:

npx skills add beclab/Olares -y -g

Installs the 6 olares-* skill bundles via vercel-labs/skills into your active agent (Cursor, Claude Code, Codex, OpenClaw, and ~50 others). The agent then auto-loads the right skill when you mention Olares-flavoured tasks.

Note: the @olares npm scope and the beclab GitHub org are independent naming spaces. The canonical source repo is github.com/beclab/Olares, so the skills add command (which fetches via GitHub) uses beclab/Olares, while the npm package is published as @olares/cli.

For AI agents: the human must run olares-cli profile login <their-olares-id> themselves — auth opens a browser. Verify with olares-cli profile current + olares-cli dashboard overview. Load olares-shared first; it documents the auth model for the other skills.

Agent skills

Each skill ships a single SKILL.md plus a references/ folder, all loaded on demand by olares-shared-aware agents.

Skill Surface Use when the user mentions...
olares-shared Profile auth, login, refresh tokens, error recovery profile, login, logout, 2FA / TOTP, keychain, auth errors
olares-files olares-cli files — read/write files in the Olares Files SPA files, drive, home, upload, download, chown, cp, mv
olares-market olares-cli market — install / upgrade / list apps market, apps, install app, upgrade app, charts
olares-settings olares-cli settings — read & mutate the Olares Settings SPA settings, account, GPU, app settings, integrations
olares-dashboard olares-cli dashboard — Overview / Apps / GPU views dashboard, overview, resource usage
olares-cluster olares-cli cluster — Olares ControlHub Kubernetes view ControlHub, cluster, pods, workloads, namespaces, nodes, logs

Skills are also published on ClawHub (search "olares"); both channels read the same SKILL.md files, so you only need one of them installed.

Three-layer command system

olares-cli <area> [<noun>] <verb> [flags]
  • System layer (root-level, no <area> prefix): install, uninstall, upgrade, start, stop, status, backup, precheck, prepare, download, change-ip, release, printinfo, logs, node, gpu, amdgpu, disk, osinfo, wizard. These manage the host running Olares OS itself and require root / kubeconfig access — they are not driven by an Olares ID. Channel availability: the Go binary only registers them when OLARES_CLI_REMOTE_ONLY is unset, i.e. only when invoked from an Olares host's OS-bundled /usr/local/bin/olares-cli. Through npm install -g @olares/cli or npx @olares/cli, the Node shim sets OLARES_CLI_REMOTE_ONLY=1 and they are hidden. The lone exception is install, which the Node shim itself intercepts and routes to the first-run wizard — it never reaches the Go binary on the npm channel.
  • Identity-bound layer (<area> = profile / files / market / settings / dashboard / cluster / doctor): act on behalf of the currently-selected Olares ID against a running Olares HTTP API. Pick the identity once with olares-cli profile use <name>, then every verb in this layer uses it. Reachable through both npm install -g and npx.

For every command, --help is the source of truth for flags and wire shapes:

olares-cli --help
olares-cli files --help
olares-cli files ls --help

Examples for workload image inspection:

olares-cli cluster workload list --limit 20 --page 1 -o json
olares-cli cluster workload images --limit 50 --page 1
olares-cli cluster workload images docker.io/library/nginx:latest
olares-cli doctor images -o json
# Orphans only, biggest first, with reclaimable-size footer.
olares-cli doctor images --unused

Output formats

Most identity-layer verbs accept --output table (default, human-readable) and --output json (machine-readable). Use --output json whenever a script or agent needs to parse the result; the JSON schema is intentionally stable across minor versions.

olares-cli files ls /drive/Home --output json
olares-cli market list --output json | jq '.items[] | {name, version, status}'

Uninstall

Pick the reverse operation that matches how you installed.

Remove the CLI client
npm uninstall -g @olares/cli
# npm cleans the `olares-cli` symlink and the package files itself —
# there is no extra cleanup step.
Clear the npx cache
# npx auto-evicts the cache after a few days. To force-clear sooner:
rm -rf ~/.npm/_npx/                       # nukes all npx-cached packages
# Or, more surgical:
ls ~/.npm/_npx/                            # find the hash dir for @olares/cli
rm -rf ~/.npm/_npx/<hash>/
Remove agent skills
npx skills remove beclab/Olares -y -g     # mirror of `skills add`
Wipe stored credentials
olares-cli profile list                    # see what's stored
olares-cli profile remove <name>           # delete one profile + its keychain token

Credentials live in the OS-native keychain (macOS Keychain / Windows DPAPI / Linux secret-service or filesystem fallback at ~/.olares/credentials/). profile remove is always the right cleaning verb — don't hand-edit those files.

On a Linux Olares host: install side-by-side with the OS bundle

This section applies only to Linux hosts that have Olares OS installed (where /usr/local/bin/olares-cli already exists). macOS / Windows / non-Olares Linux dev boxes never hit this scenario.

Why you might want this

The OS-bundled olares-cli is pinned to the version that shipped with your Olares OS release (e.g. 1.12.5). Older bundles do not include the agent / identity verbs (profile, files, market, dashboard, settings, cluster) — those land in newer npm releases first. If you want to drive a remote (or your own) Olares from the same Linux host, install the latest npm copy alongside the OS bundle. Two ways:

Option 1 — Install under a separate prefix

A plain npm install -g @olares/cli aborts with EEXIST because /usr/local/bin/olares-cli already exists. Use a separate prefix to coexist:

npm install -g @olares/cli@latest --prefix ~/.olares-cli-npm
export PATH="$HOME/.olares-cli-npm/bin:$PATH"   # PATH order decides which copy wins
olares-cli --version                            # now resolves to the npm copy
# Revert: reorder PATH or `rm -rf ~/.olares-cli-npm/`

Both binaries are then on disk:

  • /usr/local/bin/olares-cli — OS bundle. System layer (install, uninstall, upgrade, start, stop, ...).
  • ~/.olares-cli-npm/bin/olares-cli — npm copy. Identity layer (profile, files, market, dashboard, settings, cluster); system layer is hidden by OLARES_CLI_REMOTE_ONLY=1.
Option 2 — Use npx for one-offs

No persistent install, no PATH gymnastics:

npx @olares/cli@latest profile current
npx @olares/cli@latest files ls /drive/Home

Do not npm install -g @olares/cli --force on an Olares host — that would clobber the OS-managed /usr/local/bin/olares-cli. The OS bundle is canonical for system-layer verbs on that host and is upgraded via olares-cli upgrade. Without --force, npm already aborts safely with EEXIST.

The Scenario A wizard automates this safety net: it reads the existing binary's --version and only refuses to replace it when the version is release-grade (stable / rc / beta / alpha). If you intentionally placed a make install dev build at /usr/local/bin/olares-cli, the wizard will remove it and let npm install over the path — re-run with sudo if removal needs root.

Build from source

Requires Go 1.24+.

cd cli
go build -o olares-cli ./cmd/main.go
./olares-cli --help

The npm package downloads pre-built binaries from GitHub Releases on postinstall; you only need a local Go toolchain if you're modifying the CLI itself.

Repository layout

cli/
├── cmd/                  # CLI entrypoint and Cobra command tree
│   ├── main.go
│   └── ctl/              # one folder per top-level command (os, node, gpu, profile,
│                         #   market, files, dashboard, settings, cluster, ...)
├── pkg/                  # install engine + remote API clients
│   ├── core/             # pipeline / module / task / action framework
│   ├── pipelines/        # top-level pipelines invoked by install/start/upgrade/...
│   └── ...               # one package per concern (k3s, etcd, gpu, storage, terminus, ...)
├── internal/             # non-exported helpers (keychain, lockfile, files client, ...)
├── apis/                 # kubekey v1alpha2 CRD types
├── skills/               # AI-agent SKILL.md bundles, one per profile-based command tree
├── npm/                  # @olares/cli npm wrapper (postinstall downloads the Go binary)
├── version/              # VERSION / VENDOR ldflag targets
├── .goreleaser.yaml
└── go.mod

The install engine in pkg/core runs a Pipeline → Module → Task → Action stack. Each mode-1 command moves the host between five lifecycle stages:

  • precheckedolares-cli precheck validates the environment against install requirements; gating step before any state-changing action.
  • downloadedolares-cli download (component / wizard) fetches the install assets; olares-cli download check verifies completeness.
  • preparedolares-cli prepare lays out dependencies.
  • installedolares-cli install brings up Kubernetes and Olares core; olares-cli upgrade moves an installed host to a newer version; olares-cli start / stop / status toggle the runtime; olares-cli uninstall rolls back (optionally to a specific phase); olares-cli change-ip repairs after an IP change.
  • activatedolares-cli wizard activate <olaresId> enrols the first user against BFL/Auth, after which the profile-based commands become usable.

Security & risks

  • Credentials — refresh tokens are stored in the OS-native keychain (macOS Keychain / Windows DPAPI / Linux secret-service); access tokens are derived on demand and never persisted. olares-cli profile remove is the canonical way to wipe them.
  • Profile isolation — there is no per-invocation --profile flag. Identity is single-source via olares-cli profile use <name>; agents and scripts must commit to one identity up front rather than silently hopping mid-pipeline.
  • --yes contract — every mutating verb on the identity layer (delete / restart / scale / install / upgrade) prompts for confirmation by default. --yes is the agreed-on bypass; treat it as a safety check, not a style preference.
  • metadata.requires.bins is advisory — skills declare ["olares-cli"] as a host requirement so agents can warn when the binary is missing, but skill discovery does not auto-install the CLI. Install it explicitly via one of the methods above.
  • Code signing — on macOS / Windows the npm-downloaded binary is currently unsigned; Gatekeeper or SmartScreen may warn on first run. Verify the download via sha256sum against the matching GitHub Release if you need to be sure.

License

AGPL-3.0-or-later.

Directories

Path Synopsis
apis
kubekey/v1alpha2
Package v1alpha2 contains API Schema definitions for the kubekey v1alpha2 API group +kubebuilder:object:generate=true +groupName=kubekey.kubesphere.io
Package v1alpha2 contains API Schema definitions for the kubekey v1alpha2 API group +kubebuilder:object:generate=true +groupName=kubekey.kubesphere.io
cmd
ctl
ctl/cluster
Package cluster implements the `olares-cli cluster` umbrella command tree.
Package cluster implements the `olares-cli cluster` umbrella command tree.
ctl/cluster/application
Package application implements `olares-cli cluster application ...`.
Package application implements `olares-cli cluster application ...`.
ctl/cluster/container
Package container implements `olares-cli cluster container ...` — per-container drill-down inside a Pod.
Package container implements `olares-cli cluster container ...` — per-container drill-down inside a Pod.
ctl/cluster/cronjob
Package cronjob implements `olares-cli cluster cronjob ...` — CronJob inspection plus suspend/resume mutations.
Package cronjob implements `olares-cli cluster cronjob ...` — CronJob inspection plus suspend/resume mutations.
ctl/cluster/internal/clusteropts
Package clusteropts hosts the shared option bag used by every `cluster ...` verb (top-level + subpackages).
Package clusteropts hosts the shared option bag used by every `cluster ...` verb (top-level + subpackages).
ctl/cluster/job
Package job implements `olares-cli cluster job ...` — read- and write-side Job inspection (and the KubeSphere-flavored "rerun" action) for the active user's profile.
Package job implements `olares-cli cluster job ...` — read- and write-side Job inspection (and the KubeSphere-flavored "rerun" action) for the active user's profile.
ctl/cluster/middleware
Package middleware implements `olares-cli cluster middleware ...`.
Package middleware implements `olares-cli cluster middleware ...`.
ctl/cluster/namespace
Package namespace implements `olares-cli cluster namespace ...` — raw K8s Namespace inspection visible to the active profile.
Package namespace implements `olares-cli cluster namespace ...` — raw K8s Namespace inspection visible to the active profile.
ctl/cluster/node
Package node implements `olares-cli cluster node ...` — cluster node inspection visible to the active profile.
Package node implements `olares-cli cluster node ...` — cluster node inspection visible to the active profile.
ctl/cluster/pod
Package pod implements `olares-cli cluster pod ...` — read-side pod inspection for the active user's profile.
Package pod implements `olares-cli cluster pod ...` — read-side pod inspection for the active user's profile.
ctl/cluster/workload
Package workload implements `olares-cli cluster workload ...` — read-side workload (Deployment / StatefulSet / DaemonSet) inspection for the active user's profile.
Package workload implements `olares-cli cluster workload ...` — read-side workload (Deployment / StatefulSet / DaemonSet) inspection for the active user's profile.
ctl/dashboard
Package dashboard implements the `olares-cli dashboard` subtree — the AI-agent-oriented mirror of the dashboard SPA's overview / applications pages.
Package dashboard implements the `olares-cli dashboard` subtree — the AI-agent-oriented mirror of the dashboard SPA's overview / applications pages.
ctl/dashboard/applications
Package applications hosts the cobra wiring for `olares-cli dashboard applications`; business logic lives in cli/pkg/dashboard/applications/.
Package applications hosts the cobra wiring for `olares-cli dashboard applications`; business logic lives in cli/pkg/dashboard/applications/.
ctl/dashboard/overview
Package overview hosts the cobra subtree for `olares-cli dashboard overview`.
Package overview hosts the cobra subtree for `olares-cli dashboard overview`.
ctl/dashboard/overview/disk
Package disk hosts the cobra wiring for `olares-cli dashboard overview disk` (root + main + partitions).
Package disk hosts the cobra wiring for `olares-cli dashboard overview disk` (root + main + partitions).
ctl/dashboard/overview/fan
Package fan hosts the cobra wiring for `olares-cli dashboard overview fan` (root + live + curve).
Package fan hosts the cobra wiring for `olares-cli dashboard overview fan` (root + live + curve).
ctl/dashboard/overview/gpu
Package gpu hosts the cobra wiring for `olares-cli dashboard overview gpu` (root + list + tasks + get + task + detail + task-detail).
Package gpu hosts the cobra wiring for `olares-cli dashboard overview gpu` (root + list + tasks + get + task + detail + task-detail).
ctl/dashboard/schema
Package schema hosts the `olares-cli dashboard schema` introspection command.
Package schema hosts the `olares-cli dashboard schema` introspection command.
ctl/doctor
Package doctor hosts diagnostic checks that combine multiple Olares API surfaces without changing cluster or settings state.
Package doctor hosts diagnostic checks that combine multiple Olares API surfaces without changing cluster or settings state.
ctl/files
Package files implements the `olares-cli files ...` command tree, which talks to the per-user files-backend (the upstream `files` repo) over its /api/resources REST surface.
Package files implements the `olares-cli files ...` command tree, which talks to the per-user files-backend (the upstream `files` repo) over its /api/resources REST surface.
ctl/market/cancel
Package cancel builds the `market cancel` request for the detected Olares backend version.
Package cancel builds the `market cancel` request for the detected Olares backend version.
ctl/market/resume
Package resume builds the `market resume` request for the detected Olares backend version.
Package resume builds the `market resume` request for the detected Olares backend version.
ctl/market/stop
Package stop builds the `market stop` request for the detected Olares backend version.
Package stop builds the `market stop` request for the detected Olares backend version.
ctl/market/uninstall
Package uninstall builds the `market uninstall` request for the detected Olares backend version.
Package uninstall builds the `market uninstall` request for the detected Olares backend version.
ctl/profile
Package profile implements the `olares-cli profile` command tree.
Package profile implements the `olares-cli profile` command tree.
ctl/search
Package search implements the `olares-cli search` command tree: the CLI counterpart of the Olares Desktop global search dialog.
Package search implements the `olares-cli search` command tree: the CLI counterpart of the Olares Desktop global search dialog.
ctl/settings
Package settings implements the `olares-cli settings` umbrella command tree.
Package settings implements the `olares-cli settings` umbrella command tree.
ctl/settings/advanced
Package advanced hosts `olares-cli settings advanced` (the SPA's Developer/ folder, surfaced as "Advanced" in the docs).
Package advanced hosts `olares-cli settings advanced` (the SPA's Developer/ folder, surfaced as "Advanced" in the docs).
ctl/settings/appearance
Package appearance hosts `olares-cli settings appearance`.
Package appearance hosts `olares-cli settings appearance`.
ctl/settings/apps
Package apps hosts the `olares-cli settings apps ...` subtree.
Package apps hosts the `olares-cli settings apps ...` subtree.
ctl/settings/backup
Package backup hosts `olares-cli settings backup`.
Package backup hosts `olares-cli settings backup`.
ctl/settings/compute
Package compute hosts `olares-cli settings compute` — the new-version "Accelerator" surface (Olares PR #3118, TermiPass compute-resources page).
Package compute hosts `olares-cli settings compute` — the new-version "Accelerator" surface (Olares PR #3118, TermiPass compute-resources page).
ctl/settings/gpu
Package gpu hosts `olares-cli settings gpu`.
Package gpu hosts `olares-cli settings gpu`.
ctl/settings/integration
Package integration hosts `olares-cli settings integration`.
Package integration hosts `olares-cli settings integration`.
ctl/settings/internal/preflight
Package preflight is the soft role-gate adapter shared by every `olares-cli settings` area.
Package preflight is the soft role-gate adapter shared by every `olares-cli settings` area.
ctl/settings/me
Package me hosts the `olares-cli settings me ...` self-service subtree.
Package me hosts the `olares-cli settings me ...` self-service subtree.
ctl/settings/network
Package network hosts `olares-cli settings network`.
Package network hosts `olares-cli settings network`.
ctl/settings/restore
Package restore hosts `olares-cli settings restore`.
Package restore hosts `olares-cli settings restore`.
ctl/settings/search
Package search hosts `olares-cli settings search`.
Package search hosts `olares-cli settings search`.
ctl/settings/users
Package users hosts the `olares-cli settings users ...` subtree.
Package users hosts the `olares-cli settings users ...` subtree.
ctl/settings/video
Package video hosts `olares-cli settings video`.
Package video hosts `olares-cli settings video`.
ctl/settings/vpn
Package vpn hosts `olares-cli settings vpn`.
Package vpn hosts `olares-cli settings vpn`.
internal
files/archive
Package archive implements the wire side of the per-user files-backend's `/api/archive/<node>/` surface, which powers `olares-cli files compress` / `extract` / `archive entries` / `archive cat`.
Package archive implements the wire side of the per-user files-backend's `/api/archive/<node>/` surface, which powers `olares-cli files compress` / `extract` / `archive entries` / `archive cat`.
files/cp
Package cp implements the wire side of `olares-cli files cp` and `olares-cli files mv`.
Package cp implements the wire side of `olares-cli files cp` and `olares-cli files mv`.
files/download
Package download implements the per-file and recursive directory download path for `olares-cli files download` and `files cat`.
Package download implements the per-file and recursive directory download path for `olares-cli files download` and `files cat`.
files/edit
Package edit implements the wire side of `olares-cli files edit`, hitting the per-user files-backend's in-place file-write endpoint:
Package edit implements the wire side of `olares-cli files edit`, hitting the per-user files-backend's in-place file-write endpoint:
files/encodepath
Package encodepath implements percent-encoding for Olares files-backend wire paths so the CLI matches the LarePass web client (apps/packages/app/src/utils/encode.ts: encodeUrl / encodeURIComponent).
Package encodepath implements percent-encoding for Olares files-backend wire paths so the CLI matches the LarePass web client (apps/packages/app/src/utils/encode.ts: encodeUrl / encodeURIComponent).
files/mkdir
Package mkdir implements the wire side of `olares-cli files mkdir`, hitting the per-user files-backend's "create directory" endpoint:
Package mkdir implements the wire side of `olares-cli files mkdir`, hitting the per-user files-backend's "create directory" endpoint:
files/permission
Package permission implements the wire side of `olares-cli files chown`, which talks to the per-user files-backend's `/api/permission/...` surface to read and update the POSIX owner UID of a file or directory.
Package permission implements the wire side of `olares-cli files chown`, which talks to the per-user files-backend's `/api/permission/...` surface to read and update the POSIX owner UID of a file or directory.
files/rename
Package rename implements the wire side of `olares-cli files rename`, hitting the per-user files-backend's in-place rename endpoint:
Package rename implements the wire side of `olares-cli files rename`, hitting the per-user files-backend's in-place rename endpoint:
files/repos
Package repos implements the wire side of `olares-cli files repos`, the listing of Sync (Seafile / Seahub) repositories under the user's account.
Package repos implements the wire side of `olares-cli files repos`, the listing of Sync (Seafile / Seahub) repositories under the user's account.
files/rm
Package rm implements the wire side of `olares-cli files rm`.
Package rm implements the wire side of `olares-cli files rm`.
files/share
Package share implements the wire side of `olares-cli files share`, covering the three folder-sharing surfaces the LarePass web app exposes: Internal (in-Olares cross-user shares), Public (external links with optional password / expiration / upload-only), and SMB (Samba network shares).
Package share implements the wire side of `olares-cli files share`, covering the three folder-sharing surfaces the LarePass web app exposes: Internal (in-Olares cross-user shares), Public (external links with optional password / expiration / upload-only), and SMB (Samba network shares).
files/smbmount
Package smbmount implements the wire side of `olares-cli files smb` AND `olares-cli files nfs` — the CLI counterpart of the LarePass web app's "Connect to Server" flow for mounting an external SMB share or NFS export into the per-user files-backend's `external/<node>/...` namespace.
Package smbmount implements the wire side of `olares-cli files smb` AND `olares-cli files nfs` — the CLI counterpart of the LarePass web app's "Connect to Server" flow for mounting an external SMB share or NFS export into the per-user files-backend's `external/<node>/...` namespace.
files/upload
api.go: thin HTTP client for the per-user files-backend's Drive v2 upload-related endpoints.
api.go: thin HTTP client for the per-user files-backend's Drive v2 upload-related endpoints.
keychain
Package keychain provides cross-platform secure storage for olares-cli secrets (currently used for the per-olaresId access/refresh token grants written by the `profile login` and `profile import` commands).
Package keychain provides cross-platform secure storage for olares-cli secrets (currently used for the per-olaresId access/refresh token grants written by the `profile login` and `profile import` commands).
keychain/keychainfake
Package keychainfake provides a process-local KeychainAccess implementation for tests.
Package keychainfake provides a process-local KeychainAccess implementation for tests.
lockfile
Package lockfile is a tiny wrapper over github.com/gofrs/flock that adds context-cancelable acquisition and a single deterministic lock-directory layout under cliconfig.Home().
Package lockfile is a tiny wrapper over github.com/gofrs/flock that adds context-cancelable acquisition and a single deterministic lock-directory layout under cliconfig.Home().
pkg
auth
Package auth provides olares-cli's authentication primitives: JWT expiry extraction, password-based login (/api/firstfactor + /api/secondfactor/totp), refresh-token bootstrap (/api/refresh), and the on-disk token store.
Package auth provides olares-cli's authentication primitives: JWT expiry extraction, password-based login (/api/firstfactor + /api/secondfactor/totp), refresh-token bootstrap (/api/refresh), and the on-disk token store.
chart
Package chart ports devbox's docker-compose -> Olares chart scaffolding into olares-cli.
Package chart ports devbox's docker-compose -> Olares chart scaffolding into olares-cli.
cliconfig
Package cliconfig owns the on-disk profile configuration of olares-cli (~/.olares-cli/config.json).
Package cliconfig owns the on-disk profile configuration of olares-cli (~/.olares-cli/config.json).
cliutil
Package cliutil hosts CLI-tree-agnostic helpers shared across the cmd/ctl/* subtrees (settings, cluster, files, dashboard, market).
Package cliutil hosts CLI-tree-agnostic helpers shared across the cmd/ctl/* subtrees (settings, cluster, files, dashboard, market).
clusterclient
Package clusterclient is the HTTP wrapper olares-cli's `cluster` command tree uses to talk to the per-user ControlHub BFF (`<rp.ControlHubURL>`).
Package clusterclient is the HTTP wrapper olares-cli's `cluster` command tree uses to talk to the per-user ControlHub BFF (`<rp.ControlHubURL>`).
clusterctx
Package clusterctx centralizes the "who am I against this Olares cluster?" round-trip used by `olares-cli cluster context` and by any future verb that wants to render the active profile's identity / role / accessible workspaces from the ControlHub side.
Package clusterctx centralizes the "who am I against this Olares cluster?" round-trip used by `olares-cli cluster context` and by any future verb that wants to render the active profile's identity / role / accessible workspaces from the ControlHub side.
cmdutil
Package cmdutil holds the shared "Factory" that command implementations reach into instead of constructing their own clients / loading their own config / etc.
Package cmdutil holds the shared "Factory" that command implementations reach into instead of constructing their own clients / loading their own config / etc.
containerdimages
Package containerdimages is the shared wire model + fetch path for the containerd image list exposed by user-service at /api/containerd/images (a BFL-enveloped array).
Package containerdimages is the shared wire model + fetch path for the containerd image list exposed by user-service at /api/containerd/images (a BFL-enveloped array).
credential
Package credential is the orchestration layer that turns a cliconfig.ProfileConfig + a stored token into a fully-resolved view that command code can consume without touching disk directly.
Package credential is the orchestration layer that turns a cliconfig.ProfileConfig + a stored token into a fully-resolved view that command code can consume without touching disk directly.
daemon/api
Package api is a thin HTTP client for the local olaresd daemon.
Package api is a thin HTTP client for the local olaresd daemon.
daemon/state
Package state defines the data types exposed by the local olaresd daemon's GET /system/status endpoint.
Package state defines the data types exposed by the local olaresd daemon's GET /system/status endpoint.
dashboard
Package dashboard hosts the data + transport layer for the `olares-cli dashboard` CLI subtree.
Package dashboard hosts the data + transport layer for the `olares-cli dashboard` CLI subtree.
dashboard/applications
Package applications hosts the business logic for the `olares-cli dashboard applications` cobra leaf — a workload-grain table mirroring the SPA's Applications page.
Package applications hosts the business logic for the `olares-cli dashboard applications` cobra leaf — a workload-grain table mirroring the SPA's Applications page.
dashboard/format
Package format is a 1:1 Go port of the dashboard SPA's number / unit formatting helpers.
Package format is a 1:1 Go port of the dashboard SPA's number / unit formatting helpers.
dashboard/overview
Package overview hosts the business logic for the `olares-cli dashboard overview` cobra subtree — physical / user / ranking / cpu / memory / pods / network leaves plus the default fan-out aggregator.
Package overview hosts the business logic for the `olares-cli dashboard overview` cobra subtree — physical / user / ranking / cpu / memory / pods / network leaves plus the default fan-out aggregator.
dashboard/overview/disk
Package disk hosts the business logic for the `olares-cli dashboard overview disk` subtree (root + main + partitions).
Package disk hosts the business logic for the `olares-cli dashboard overview disk` subtree (root + main + partitions).
dashboard/overview/fan
Package fan hosts the business logic for the `olares-cli dashboard overview fan` subtree (root + live + curve).
Package fan hosts the business logic for the `olares-cli dashboard overview fan` subtree (root + live + curve).
dashboard/overview/gpu
Package gpu hosts the business logic for the `olares-cli dashboard overview gpu` subtree (root + list + tasks + get + task + detail + task-detail).
Package gpu hosts the business logic for the `olares-cli dashboard overview gpu` subtree (root + list + tasks + get + task + detail + task-detail).
gpu
k3s
olares
Package olares contains primitives shared across olares-cli that don't fit into a more specific subpackage.
Package olares contains primitives shared across olares-cli that don't fit into a more specific subpackage.
web5/crypto
Package crypto provides the following functionality: * Key Generation: secp256k1, ed25519 * Signing: secp256k1, ed25519 * Verification: secp256k1, ed25519 * A KeyManager abstraction that can be leveraged to manage/use keys (create, sign etc) as desired per the given use case
Package crypto provides the following functionality: * Key Generation: secp256k1, ed25519 * Signing: secp256k1, ed25519 * Verification: secp256k1, ed25519 * A KeyManager abstraction that can be leveraged to manage/use keys (create, sign etc) as desired per the given use case
web5/crypto/dsa/eddsa
Package eddsa implements the EdDSA signature schemes as per RFC 8032 https://tools.ietf.org/html/rfc8032.
Package eddsa implements the EdDSA signature schemes as per RFC 8032 https://tools.ietf.org/html/rfc8032.
web5/jwk
Package jwk implements a subset of the JSON Web Key spec (https://tools.ietf.org/html/rfc7517)
Package jwk implements a subset of the JSON Web Key spec (https://tools.ietf.org/html/rfc7517)
whoami
Package whoami centralizes the "who am I on this Olares?" round-trip.
Package whoami centralizes the "who am I on this Olares?" round-trip.
wizard
frp.go: fetch the public Olares-tunnel (FRP) registry by olaresId.
frp.go: fetch the public Olares-tunnel (FRP) registry by olaresId.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL