docs: standardize OpenClaw casing
What: - replace "Openclaw" -> "OpenClaw" in user-facing docs, module descriptions, and messages Why: - consistent product naming after upstream rename Tests: - none (string-only change)
This commit is contained in:
parent
f9ad193d28
commit
a52fe152e9
@ -49,7 +49,7 @@ Defaults:
|
||||
- NEVER send any message (iMessage, email, SMS, etc.) without explicit user confirmation:
|
||||
- Always show the full message text and ask: “I’m going to send this: <message>. Send? (y/n)”
|
||||
|
||||
Openclaw packaging:
|
||||
OpenClaw packaging:
|
||||
- The gateway package must include Control UI assets (run `pnpm ui:build` in the Nix build).
|
||||
|
||||
Golden path for pins (yolo + manual bumps):
|
||||
@ -70,7 +70,7 @@ CI polling (hard rule):
|
||||
|
||||
Philosophy:
|
||||
|
||||
The Zen of ~~Python~~ Openclaw, ~~by~~ shamelessly stolen from Tim Peters
|
||||
The Zen of ~~Python~~ OpenClaw, ~~by~~ shamelessly stolen from Tim Peters
|
||||
|
||||
Beautiful is better than ugly.
|
||||
Explicit is better than implicit.
|
||||
|
||||
24
README.md
24
README.md
@ -1,10 +1,10 @@
|
||||
# nix-openclaw
|
||||
|
||||
> Declarative Openclaw. Bulletproof by default.
|
||||
> Declarative OpenClaw. Bulletproof by default.
|
||||
>
|
||||
> macOS + Linux (headless). Windows is out of scope for now.
|
||||
>
|
||||
> <sub>Questions? Join the Openclaw Discord and ask in **#golden-path-deployments**: https://discord.com/channels/1456350064065904867/1457003026412736537</sub>
|
||||
> <sub>Questions? Join the OpenClaw Discord and ask in **#golden-path-deployments**: https://discord.com/channels/1456350064065904867/1457003026412736537</sub>
|
||||
|
||||
## Contributions (read this first)
|
||||
|
||||
@ -117,7 +117,7 @@ I want to set up nix-openclaw on my machine (macOS or Linux).
|
||||
Repository: github:openclaw/nix-openclaw
|
||||
|
||||
What nix-openclaw is:
|
||||
- Batteries-included Nix package for Openclaw (AI assistant gateway)
|
||||
- Batteries-included Nix package for OpenClaw (AI assistant gateway)
|
||||
- Installs gateway + tools everywhere; macOS app only on macOS
|
||||
- Runs as a launchd service on macOS, systemd user service on Linux
|
||||
|
||||
@ -140,12 +140,12 @@ My setup:
|
||||
Reference the README and templates/agent-first/flake.nix in the repo for the module options.
|
||||
```
|
||||
|
||||
Your agent will install Nix, create your config, and get Openclaw running. You just answer its questions.
|
||||
Your agent will install Nix, create your config, and get OpenClaw running. You just answer its questions.
|
||||
|
||||
**What happens next:**
|
||||
1. Your agent sets everything up and runs `home-manager switch`
|
||||
2. You message your Telegram bot for the first time
|
||||
3. Openclaw runs its **bootstrap ritual** - it asks you playful questions: *"Who am I? What am I? Who are you?"* - to learn its identity and yours
|
||||
3. OpenClaw runs its **bootstrap ritual** - it asks you playful questions: *"Who am I? What am I? Who are you?"* - to learn its identity and yours
|
||||
4. Once you've named it and introduced yourself, the bootstrap is done. You're up and running.
|
||||
|
||||
<details>
|
||||
@ -212,7 +212,7 @@ You (Telegram/Discord) --> Gateway --> Tools --> Your machine does things
|
||||
1. **CLI tools** - actual programs that do stuff (take screenshots, control Spotify, transcribe audio)
|
||||
2. **Skills** - markdown files that teach the AI *how* to use those tools
|
||||
|
||||
When you enable a plugin, Nix installs the tools and wires up the skills to Openclaw automatically - the gateway learns what it can do.
|
||||
When you enable a plugin, Nix installs the tools and wires up the skills to OpenClaw automatically - the gateway learns what it can do.
|
||||
|
||||
**Skills**: Instructions for the AI. A skill file says "when the user wants X, run this command." The AI reads these to know what it can do.
|
||||
|
||||
@ -238,9 +238,9 @@ All state lives in `~/.openclaw/`. Logs at `/tmp/openclaw/openclaw-gateway.log`.
|
||||
|
||||
## Plugins
|
||||
|
||||
> **Note:** Complete the [Quick Start](#quick-start) first to get Openclaw running. Then come back here to add plugins.
|
||||
> **Note:** Complete the [Quick Start](#quick-start) first to get OpenClaw running. Then come back here to add plugins.
|
||||
|
||||
Plugins extend what Openclaw can do. Each plugin bundles tools and teaches the AI how to use them.
|
||||
Plugins extend what OpenClaw can do. Each plugin bundles tools and teaches the AI how to use them.
|
||||
|
||||
### First-party plugins
|
||||
|
||||
@ -324,7 +324,7 @@ customPlugins = [
|
||||
<details>
|
||||
<summary><strong>For plugin developers</strong></summary>
|
||||
|
||||
Want to make your tool available as a Openclaw plugin? Here's the contract.
|
||||
Want to make your tool available as a OpenClaw plugin? Here's the contract.
|
||||
|
||||
**Minimum structure:**
|
||||
|
||||
@ -448,7 +448,7 @@ Deliverables: flake output, env overrides, AGENTS.md, skill update.
|
||||
>
|
||||
> **Breaking change:** Nix now only emits config from `programs.openclaw.config` / `instances.<name>.config` (schema-typed). Legacy provider/routing/agent options are removed.
|
||||
|
||||
### What Openclaw needs (minimum)
|
||||
### What OpenClaw needs (minimum)
|
||||
|
||||
1. **Telegram bot token file** - create via [@BotFather](https://t.me/BotFather), set `channels.telegram.tokenFile`
|
||||
2. **Your Telegram user ID** - get from [@userinfobot](https://t.me/userinfobot), set `channels.telegram.allowFrom`
|
||||
@ -756,7 +756,7 @@ home-manager switch --rollback # revert
|
||||
|
||||
## Philosophy
|
||||
|
||||
The Zen of ~~Python~~ Openclaw, ~~by~~ shamelessly stolen from Tim Peters
|
||||
The Zen of ~~Python~~ OpenClaw, ~~by~~ shamelessly stolen from Tim Peters
|
||||
|
||||
Beautiful is better than ugly.
|
||||
Explicit is better than implicit.
|
||||
@ -782,7 +782,7 @@ Namespaces are one honking great idea -- let's do more of those!
|
||||
|
||||
## Upstream
|
||||
|
||||
Wraps [Openclaw](https://github.com/openclaw/openclaw) by Peter Steinberger.
|
||||
Wraps [OpenClaw](https://github.com/openclaw/openclaw) by Peter Steinberger.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Openclaw Plugin Architecture (Maintainer Memo)
|
||||
# OpenClaw Plugin Architecture (Maintainer Memo)
|
||||
|
||||
Purpose: extend Openclaw capabilities without bloating core; ship tools + skills + config as reproducible units you can pin, test, and roll back. nix-openclaw shows the contract; Openclaw core should treat the same interface as first-class, even off-Nix.
|
||||
Purpose: extend OpenClaw capabilities without bloating core; ship tools + skills + config as reproducible units you can pin, test, and roll back. nix-openclaw shows the contract; OpenClaw core should treat the same interface as first-class, even off-Nix.
|
||||
|
||||
## What a Plugin Is (and is not)
|
||||
- **Is:** bundle of binaries/CLIs, skills that teach the agent to use them, optional config/env requirements.
|
||||
@ -52,7 +52,7 @@ plugins = [
|
||||
- Invariant: providing `settings` requires at least one `stateDir`.
|
||||
|
||||
## Dev workflow (fast iteration)
|
||||
- Worktree: build and test plugins outside the core repo; point Openclaw at a local path source (e.g., `source = "path:/Users/you/code/my-plugin"`).
|
||||
- Worktree: build and test plugins outside the core repo; point OpenClaw at a local path source (e.g., `source = "path:/Users/you/code/my-plugin"`).
|
||||
- Rebuild loop: change plugin → `home-manager switch` (or host-equivalent) → gateway restarts with new PATH/skills/config; no manual copying.
|
||||
- Name collisions: use the same plugin `name` to override a pinned version (last entry wins); keep unique names otherwise to avoid surprise overrides.
|
||||
- Skills placement: skills land under `~/.openclaw*/workspace/skills/<plugin>/...` so you can inspect quickly; delete the workspace to fully reset cached skills.
|
||||
@ -144,6 +144,6 @@ Host behavior: creates `~/.config/xuezh/config.json` from `settings`; exports bo
|
||||
## Why this approach
|
||||
- Capability grounding: skills map to real tools, not hypothetical ones.
|
||||
- Reproducibility: versioned bundle of tool + skill + config schema; easy rollback.
|
||||
- Clean core: main Openclaw stays transport/model-focused; plugins carry integrations.
|
||||
- Clean core: main OpenClaw stays transport/model-focused; plugins carry integrations.
|
||||
- Operational sanity: one toggle wires tools, env, skills; failure is explicit and early.
|
||||
- Portability: contract is host-agnostic; Nix just enforces determinism and zero drift.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# RFC: Declarative Openclaw as a Nix Package (nix-openclaw)
|
||||
# RFC: Declarative OpenClaw as a Nix Package (nix-openclaw)
|
||||
|
||||
- Date: 2026-01-02
|
||||
- Status: Implementing
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
## 1) Narrative: what we are building and why
|
||||
|
||||
Openclaw is powerful but hard to install and configure for new users, especially those who do not want to learn Nix internals. We need a batteries‑included, obvious, and safe path to get a working Openclaw instance with minimal friction. This RFC proposes a dedicated public repo, `nix-openclaw`, that packages Openclaw for Nix and provides a declarative, user‑friendly configuration layer with strong defaults and an agent‑first onboarding flow.
|
||||
OpenClaw is powerful but hard to install and configure for new users, especially those who do not want to learn Nix internals. We need a batteries‑included, obvious, and safe path to get a working OpenClaw instance with minimal friction. This RFC proposes a dedicated public repo, `nix-openclaw`, that packages OpenClaw for Nix and provides a declarative, user‑friendly configuration layer with strong defaults and an agent‑first onboarding flow.
|
||||
|
||||
The goal is a **fully declarative bootstrap**: users provide a small set of inputs (token path + allowlist), and the setup is deterministic and repeatable.
|
||||
|
||||
@ -32,7 +32,7 @@ This RFC is explicitly **not** about:
|
||||
## 2) Goals / Non‑goals
|
||||
|
||||
Goals:
|
||||
- Provide a Nix package for Openclaw and a Home Manager module with batteries‑included defaults.
|
||||
- Provide a Nix package for OpenClaw and a Home Manager module with batteries‑included defaults.
|
||||
- Provide a macOS app bundle package aligned to the gateway version.
|
||||
- Make configuration technically light with explicit options and guardrails.
|
||||
- Telegram‑first configuration and defaults.
|
||||
@ -40,17 +40,17 @@ Goals:
|
||||
- New user can get a working bot in 10 minutes without understanding Nix internals.
|
||||
|
||||
Non‑goals:
|
||||
- Rewriting Openclaw core functionality.
|
||||
- Rewriting OpenClaw core functionality.
|
||||
- Supporting non‑Nix install paths in this repo.
|
||||
- Shipping a hosted SaaS or paid hosting.
|
||||
- Replacing upstream Openclaw docs.
|
||||
- Replacing upstream OpenClaw docs.
|
||||
- Cross‑platform support (Linux/Windows) in v1.
|
||||
- CI automation in v1.
|
||||
|
||||
## 3) System overview
|
||||
|
||||
`nix-openclaw` is a public repo that provides (macOS‑only in v1, no CI in v1):
|
||||
- A Nix package derivation for the Openclaw gateway.
|
||||
- A Nix package derivation for the OpenClaw gateway.
|
||||
- A Nix package for the macOS app bundle (DMG).
|
||||
- A Home Manager module for user‑level config and service wiring.
|
||||
- A nix‑darwin module for macOS users (optional, thin wrapper over HM).
|
||||
@ -59,8 +59,8 @@ Non‑goals:
|
||||
|
||||
## 4) Components and responsibilities
|
||||
|
||||
- **Package derivation**: builds Openclaw gateway from a pinned source.
|
||||
- **App bundle**: installs Openclaw.app from a pinned DMG matching the gateway version.
|
||||
- **Package derivation**: builds OpenClaw gateway from a pinned source.
|
||||
- **App bundle**: installs OpenClaw.app from a pinned DMG matching the gateway version.
|
||||
- **Home Manager module**: declarative config, writes `~/.openclaw/openclaw.json`, manages services.
|
||||
- **Flake outputs**:
|
||||
- `packages.<system>.openclaw` (default batteries‑included bundle)
|
||||
@ -92,7 +92,7 @@ The README is the only supported onboarding path. It must include:
|
||||
## 8) Backing tools (batteries‑included)
|
||||
|
||||
- Base and extended toolchains are installed via Nix by default.
|
||||
- Tools correspond to upstream Openclaw skill installers (brew/go/node/uv) mapped into nixpkgs where possible.
|
||||
- Tools correspond to upstream OpenClaw skill installers (brew/go/node/uv) mapped into nixpkgs where possible.
|
||||
|
||||
## 9) Compatibility guarantees
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# RFC: Openclaw Plugin System — The Golden Path
|
||||
# RFC: OpenClaw Plugin System — The Golden Path
|
||||
|
||||
- Date: 2026-01-11
|
||||
- Status: Draft
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
description = "Hello-world Openclaw plugin";
|
||||
description = "Hello-world OpenClaw plugin";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
description = "nix-openclaw: declarative Openclaw packaging";
|
||||
description = "nix-openclaw: declarative OpenClaw packaging";
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters = [ "https://cache.garnix.io" ];
|
||||
|
||||
@ -71,7 +71,7 @@ let
|
||||
};
|
||||
|
||||
hasUnit = builtins.hasAttr "openclaw-gateway" eval.config.systemd.user.services;
|
||||
check = if hasUnit then "ok" else throw "Default Openclaw instance missing systemd.unitName.";
|
||||
check = if hasUnit then "ok" else throw "Default OpenClaw instance missing systemd.unitName.";
|
||||
checkKey = builtins.deepSeq check "ok";
|
||||
|
||||
in
|
||||
|
||||
@ -5,7 +5,7 @@ usage() {
|
||||
cat <<'EOF'
|
||||
Usage: openclaw-reload [test|prod|both]
|
||||
|
||||
Re-render Openclaw config via Home Manager (no sudo) and restart gateway(s).
|
||||
Re-render OpenClaw config via Home Manager (no sudo) and restart gateway(s).
|
||||
|
||||
Defaults to: test
|
||||
EOF
|
||||
|
||||
@ -162,7 +162,7 @@ let
|
||||
systemdService = lib.optionalAttrs (pkgs.stdenv.hostPlatform.isLinux && inst.systemd.enable) {
|
||||
"${inst.systemd.unitName}" = {
|
||||
Unit = {
|
||||
Description = "Openclaw gateway (${name})";
|
||||
Description = "OpenClaw gateway (${name})";
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${gatewayWrapper}/bin/openclaw-gateway-${name} gateway --port ${toString inst.gatewayPort}";
|
||||
@ -197,7 +197,7 @@ in {
|
||||
assertions = [
|
||||
{
|
||||
assertion = lib.length (lib.attrNames appDefaultsEnabled) <= 1;
|
||||
message = "Only one Openclaw instance may enable appDefaults.";
|
||||
message = "Only one OpenClaw instance may enable appDefaults.";
|
||||
}
|
||||
] ++ files.documentsAssertions ++ files.skillAssertions ++ plugins.pluginAssertions ++ plugins.pluginSkillAssertions;
|
||||
|
||||
|
||||
@ -131,7 +131,7 @@ let
|
||||
let
|
||||
guardLine = file: ''
|
||||
if [ -e "${file}" ] && [ ! -L "${file}" ]; then
|
||||
echo "Openclaw documents are managed by Nix. Please adopt ${file} into your documents directory and re-run." >&2
|
||||
echo "OpenClaw documents are managed by Nix. Please adopt ${file} into your documents directory and re-run." >&2
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
@ -6,13 +6,13 @@
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Enable this Openclaw instance.";
|
||||
description = "Enable this OpenClaw instance.";
|
||||
};
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = openclawLib.defaultPackage;
|
||||
description = "Openclaw batteries-included package.";
|
||||
description = "OpenClaw batteries-included package.";
|
||||
};
|
||||
|
||||
stateDir = lib.mkOption {
|
||||
@ -20,19 +20,19 @@
|
||||
default = if name == "default"
|
||||
then "${openclawLib.homeDir}/.openclaw"
|
||||
else "${openclawLib.homeDir}/.openclaw-${name}";
|
||||
description = "State directory for this Openclaw instance (logs, sessions, config).";
|
||||
description = "State directory for this OpenClaw instance (logs, sessions, config).";
|
||||
};
|
||||
|
||||
workspaceDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${config.stateDir}/workspace";
|
||||
description = "Workspace directory for this Openclaw instance.";
|
||||
description = "Workspace directory for this OpenClaw instance.";
|
||||
};
|
||||
|
||||
configPath = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${config.stateDir}/openclaw.json";
|
||||
description = "Path to generated Openclaw config JSON.";
|
||||
description = "Path to generated OpenClaw config JSON.";
|
||||
};
|
||||
|
||||
logPath = lib.mkOption {
|
||||
@ -40,19 +40,19 @@
|
||||
default = if name == "default"
|
||||
then "/tmp/openclaw/openclaw-gateway.log"
|
||||
else "/tmp/openclaw/openclaw-gateway-${name}.log";
|
||||
description = "Log path for this Openclaw gateway instance.";
|
||||
description = "Log path for this OpenClaw gateway instance.";
|
||||
};
|
||||
|
||||
gatewayPort = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 18789;
|
||||
description = "Gateway port used by the Openclaw desktop app.";
|
||||
description = "Gateway port used by the OpenClaw desktop app.";
|
||||
};
|
||||
|
||||
gatewayPath = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = "Local path to Openclaw gateway source (dev only).";
|
||||
description = "Local path to OpenClaw gateway source (dev only).";
|
||||
};
|
||||
|
||||
gatewayPnpmDepsHash = lib.mkOption {
|
||||
@ -82,13 +82,13 @@
|
||||
config = lib.mkOption {
|
||||
type = lib.types.submodule { options = openclawLib.generatedConfigOptions; };
|
||||
default = {};
|
||||
description = "Openclaw config (schema-typed).";
|
||||
description = "OpenClaw config (schema-typed).";
|
||||
};
|
||||
|
||||
launchd.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Run Openclaw gateway via launchd (macOS).";
|
||||
description = "Run OpenClaw gateway via launchd (macOS).";
|
||||
};
|
||||
|
||||
launchd.label = lib.mkOption {
|
||||
@ -102,7 +102,7 @@
|
||||
systemd.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Run Openclaw gateway via systemd user service (Linux).";
|
||||
description = "Run OpenClaw gateway via systemd user service (Linux).";
|
||||
};
|
||||
|
||||
systemd.unitName = lib.mkOption {
|
||||
|
||||
@ -44,12 +44,12 @@ let
|
||||
|
||||
in {
|
||||
options.programs.openclaw = {
|
||||
enable = lib.mkEnableOption "Openclaw (batteries-included)";
|
||||
enable = lib.mkEnableOption "OpenClaw (batteries-included)";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.openclaw;
|
||||
description = "Openclaw batteries-included package.";
|
||||
description = "OpenClaw batteries-included package.";
|
||||
};
|
||||
|
||||
toolNames = lib.mkOption {
|
||||
@ -67,7 +67,7 @@ in {
|
||||
appPackage = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.package;
|
||||
default = null;
|
||||
description = "Optional Openclaw app package (defaults to package if unset).";
|
||||
description = "Optional OpenClaw app package (defaults to package if unset).";
|
||||
};
|
||||
|
||||
installApp = lib.mkOption {
|
||||
@ -79,13 +79,13 @@ in {
|
||||
stateDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${openclawLib.homeDir}/.openclaw";
|
||||
description = "State directory for Openclaw (logs, sessions, config).";
|
||||
description = "State directory for OpenClaw (logs, sessions, config).";
|
||||
};
|
||||
|
||||
workspaceDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${openclawLib.homeDir}/.openclaw/workspace";
|
||||
description = "Workspace directory for Openclaw agent skills.";
|
||||
description = "Workspace directory for OpenClaw agent skills.";
|
||||
};
|
||||
|
||||
documents = lib.mkOption {
|
||||
@ -148,31 +148,31 @@ in {
|
||||
launchd.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Run Openclaw gateway via launchd (macOS).";
|
||||
description = "Run OpenClaw gateway via launchd (macOS).";
|
||||
};
|
||||
|
||||
launchd.label = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "com.steipete.openclaw.gateway";
|
||||
description = "launchd label for the default Openclaw instance.";
|
||||
description = "launchd label for the default OpenClaw instance.";
|
||||
};
|
||||
|
||||
systemd.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Run Openclaw gateway via systemd user service (Linux).";
|
||||
description = "Run OpenClaw gateway via systemd user service (Linux).";
|
||||
};
|
||||
|
||||
systemd.unitName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "openclaw-gateway";
|
||||
description = "systemd user service unit name for the default Openclaw instance.";
|
||||
description = "systemd user service unit name for the default OpenClaw instance.";
|
||||
};
|
||||
|
||||
instances = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.submodule instanceModule);
|
||||
default = {};
|
||||
description = "Named Openclaw instances (prod/test).";
|
||||
description = "Named OpenClaw instances (prod/test).";
|
||||
};
|
||||
|
||||
exposePluginPackages = lib.mkOption {
|
||||
@ -192,7 +192,7 @@ in {
|
||||
config = lib.mkOption {
|
||||
type = lib.types.submodule { options = openclawLib.generatedConfigOptions; };
|
||||
default = {};
|
||||
description = "Openclaw config (schema-typed).";
|
||||
description = "OpenClaw config (schema-typed).";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation {
|
||||
installPhase = "${../scripts/openclaw-app-install.sh}";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Openclaw macOS app bundle";
|
||||
description = "OpenClaw macOS app bundle";
|
||||
homepage = "https://github.com/openclaw/openclaw";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.darwin;
|
||||
|
||||
@ -15,7 +15,7 @@ buildEnv {
|
||||
pathsToLink = [ "/bin" ] ++ appLinks;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Openclaw batteries-included bundle (gateway + app + tools)";
|
||||
description = "OpenClaw batteries-included bundle (gateway + app + tools)";
|
||||
homepage = "https://github.com/openclaw/openclaw";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.darwin ++ platforms.linux;
|
||||
|
||||
@ -94,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
dontPatchShebangs = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Telegram-first AI gateway (Openclaw)";
|
||||
description = "Telegram-first AI gateway (OpenClaw)";
|
||||
homepage = "https://github.com/openclaw/openclaw";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.darwin ++ platforms.linux;
|
||||
|
||||
@ -64,7 +64,7 @@ const parsed = JSON.parse(raw);
|
||||
|
||||
const result = validateConfigObject(parsed);
|
||||
if (!result.ok) {
|
||||
console.error("Openclaw config validation failed:");
|
||||
console.error("OpenClaw config validation failed:");
|
||||
for (const issue of result.issues ?? []) {
|
||||
const pathLabel = issue.path ? ` ${issue.path}` : "";
|
||||
console.error(`- ${pathLabel}: ${issue.message}`);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Pinned Openclaw source for nix-openclaw
|
||||
# Pinned OpenClaw source for nix-openclaw
|
||||
{
|
||||
owner = "openclaw";
|
||||
repo = "openclaw";
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# AGENTS.md — Openclaw Workspace
|
||||
# AGENTS.md — OpenClaw Workspace
|
||||
|
||||
This file is managed by Nix. Update it in the repo, not in the workspace.
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# SOUL.md
|
||||
|
||||
Openclaw exists to do useful work reliably with minimal friction.
|
||||
OpenClaw exists to do useful work reliably with minimal friction.
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
description = "Openclaw local";
|
||||
description = "OpenClaw local";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
@ -31,7 +31,7 @@
|
||||
# REPLACE: path to your managed documents directory
|
||||
documents = ./documents;
|
||||
|
||||
# Schema-typed Openclaw config (from upstream)
|
||||
# Schema-typed OpenClaw config (from upstream)
|
||||
config = {
|
||||
gateway = {
|
||||
mode = "local";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user