Auto backup: 2026-02-19 12:13

This commit is contained in:
Krilly
2026-02-19 12:13:47 +00:00
parent b33a4d2390
commit fa9191136f
5 changed files with 943 additions and 3 deletions

View File

@@ -33,6 +33,41 @@ send_gotify() {
fi
}
# Snapshot critical OpenClaw state into workspace repo so updates/reinstalls are recoverable
snapshot_state_files() {
local src_root="/home/openclaw/.openclaw"
local dst_root="/home/openclaw/.openclaw/workspace/state-backup"
mkdir -p "$dst_root" "$dst_root/cron" "$dst_root/skills" "$dst_root/devices"
# Copy key state files if present
[[ -f "$src_root/openclaw.json" ]] && cp "$src_root/openclaw.json" "$dst_root/openclaw.json"
[[ -f "$src_root/cron/jobs.json" ]] && cp "$src_root/cron/jobs.json" "$dst_root/cron/jobs.json"
[[ -f "$src_root/devices/paired.json" ]] && cp "$src_root/devices/paired.json" "$dst_root/devices/paired.json"
# Skill metadata (if any)
if compgen -G "$src_root/skills/*.json" > /dev/null; then
cp "$src_root/skills"/*.json "$dst_root/skills/"
fi
# Helpful restore/readme metadata
cat > "$dst_root/README.md" <<EOF
# OpenClaw State Backup
This folder is auto-generated by automations/backup-to-gitea.sh before each git backup.
Included state:
- openclaw.json
- cron/jobs.json
- devices/paired.json
- skills/*.json
Generated at: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
EOF
echo "🧠 State snapshot refreshed in state-backup/" | tee -a "$LOG_FILE"
}
# Function to backup a repo
backup_repo() {
local path=$1
@@ -60,6 +95,7 @@ backup_repo() {
# Backup workspace
echo "📂 Backing up workspace..." | tee -a "$LOG_FILE"
snapshot_state_files
backup_repo "/home/openclaw/.openclaw/workspace" "workspace"
echo "" | tee -a "$LOG_FILE"

11
state-backup/README.md Normal file
View File

@@ -0,0 +1,11 @@
# OpenClaw State Backup
This folder is auto-generated by automations/backup-to-gitea.sh before each git backup.
Included state:
- openclaw.json
- cron/jobs.json
- devices/paired.json
- skills/*.json
Generated at: 2026-02-19T12:13:47Z

155
state-backup/cron/jobs.json Normal file
View File

@@ -0,0 +1,155 @@
{
"version": 1,
"jobs": [
{
"id": "fbe52aa7-b6d1-4038-8787-cedc0b7ff57a",
"agentId": "main",
"name": "Daily OpenClaw Backup",
"enabled": true,
"notify": false,
"createdAtMs": 1771343375836,
"updatedAtMs": 1771477124683,
"schedule": {
"kind": "cron",
"expr": "0 2 * * *",
"tz": "Australia/Perth"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "Run the OpenClaw backup script: /home/openclaw/.openclaw/workspace/scripts/backup-to-gitea.sh\n\nIf it succeeds, reply NO_REPLY. If it fails, send a Gotify alert using:\n- URL: http://runtipi.kangaroo-eel.ts.net:8129\n- Token: AGKnHafW3FGzBlt\n- Title: 🚨 Backup Failed\n- Message: The OpenClaw backup to Gitea failed. Check logs for details.\n- Priority: 8 (high)\n- Use curl to POST to /message?token=AGKnHafW3FGzBlt with JSON: {\"title\": \"...\", \"message\": \"...\", \"priority\": 8}",
"model": "opencode/kimi-k2.5-free"
},
"state": {
"nextRunAtMs": 1771524000000,
"lastRunAtMs": 1771437600016,
"lastStatus": "ok",
"lastDurationMs": 12483,
"consecutiveErrors": 0
},
"delivery": {
"mode": "announce"
}
},
{
"id": "a2a136e5-75a7-4e62-bc9c-63af5e8a8188",
"agentId": "main",
"name": "Morning Briefing",
"enabled": true,
"createdAtMs": 1771343566895,
"updatedAtMs": 1771474066604,
"schedule": {
"expr": "5 7 * * *",
"kind": "cron",
"tz": "Australia/Perth"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "🌅 Good morning! Run the daily briefing for Anthony:\n\n1. Get Perth weather: curl -s \"wttr.in/Perth+Australia?format=%l:+%c+%t+%h+%w\"\n2. Run AI newsletter digest: /home/openclaw/.openclaw/workspace/automations/ai-newsletter-digest/daily-digest.sh\n3. Combine weather + newsletter digest into a morning briefing\n4. Send via Telegram to Anthony (channel: telegram, to: telegram:1793951355)\n\nSign off as Krilly the Crab 🦀",
"model": "opencode/kimi-k2.5-free"
},
"state": {
"nextRunAtMs": 1771542300000,
"lastRunAtMs": 1771455900004,
"lastStatus": "ok",
"lastDurationMs": 15170,
"consecutiveErrors": 0
},
"delivery": {
"mode": "none"
}
},
{
"id": "e9dbcf5b-5d1b-477e-a804-97b2f1b9855e",
"agentId": "main",
"name": "Weekend Briefing",
"enabled": true,
"createdAtMs": 1771343574470,
"updatedAtMs": 1771463024946,
"schedule": {
"expr": "0 8 * * 0,6",
"kind": "cron",
"tz": "Australia/Perth"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "Generate weekend briefing:\n\n1. Get Perth weekend weather: curl -s \"wttr.in/Perth+Australia?format=%l:+%c+%t+%h+%w\"\n2. Get weekend forecast: curl -s \"wttr.in/Perth+Australia?F\"\n3. Run AI newsletter digest: /home/openclaw/.openclaw/workspace/automations/ai-newsletter-digest/daily-digest.sh\n4. Create weekend digest with weather + top AI/Tech stories\n5. Send via Telegram to Anthony",
"model": "opencode/kimi-k2.5-free"
},
"delivery": {
"mode": "announce"
},
"state": {
"nextRunAtMs": 1771632000000
}
},
{
"id": "9225c88a-8616-4e02-8196-257a2eb9c8b1",
"agentId": "main",
"name": "OpenClaw Daily Digest",
"enabled": true,
"notify": true,
"createdAtMs": 1771392667779,
"updatedAtMs": 1771477114198,
"schedule": {
"expr": "30 6 * * *",
"kind": "cron",
"tz": "Australia/Perth"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "## OpenClaw Daily Intelligence Briefing\n\nRun a comprehensive search for OpenClaw news and information, then deliver a curated digest to Anthony.\n\n---\n\n### Step 1 — Search all sources\n\n#### 🔍 Web searches (run all of these via web_search)\n- `openclaw AI agent`\n- `clawdbot`\n- `clawhub new skills`\n- `clawflows automation`\n- `openclaw update release`\n- `openclaw site:reddit.com`\n- `openclaw site:github.com`\n- `openclaw site:discord.com`\n\n#### 📰 FreshRSS (last 24h)\nUse the freshrss skill: `/home/openclaw/.openclaw/workspace/skills/freshrss-reader/scripts/freshrss.sh headlines --hours 24 --count 100`\n- FRESHRSS_URL: `http://freshrss.kangaroo-eel.ts.net`\n- Filter results for: openclaw, clawdbot, clawhub, clawflows, AI agent, autonomous agent, self-hosted AI\n- If credentials are missing or it fails, skip gracefully\n\n#### 🤖 Reddit — fetch all of these with web_fetch and extract interesting posts:\n\n**Dedicated communities:**\n- `https://www.reddit.com/r/openclaw/new.json?limit=10`\n- `https://www.reddit.com/r/clawdbot/new.json?limit=10`\n- `https://www.reddit.com/r/OpenClaw/new.json?limit=10`\n\n**Broader AI agent & self-hosted communities (search within for openclaw/clawdbot):**\n- `https://www.reddit.com/r/selfhosted/search.json?q=openclaw+OR+clawdbot&sort=new&t=week&limit=10`\n- `https://www.reddit.com/r/homeserver/search.json?q=openclaw+OR+clawdbot&sort=new&t=week&limit=10`\n- `https://www.reddit.com/r/LocalLLaMA/search.json?q=openclaw+OR+clawdbot&sort=new&t=week&limit=10`\n- `https://www.reddit.com/r/artificial/search.json?q=openclaw&sort=new&t=week&limit=10`\n- `https://www.reddit.com/r/AIAssistants/search.json?q=openclaw&sort=new&t=week&limit=10`\n- `https://www.reddit.com/r/homeautomation/search.json?q=openclaw+OR+clawdbot&sort=new&t=week&limit=10`\n\n**Sitewide Reddit search:**\n- `https://www.reddit.com/search.json?q=openclaw&sort=new&t=day&limit=15`\n- `https://www.reddit.com/search.json?q=clawdbot&sort=new&t=week&limit=10`\n\n#### 🐙 GitHub\n- Fetch `https://api.github.com/search/repositories?q=openclaw&sort=updated&order=desc&per_page=5` for new/updated repos\n- Fetch `https://api.github.com/search/issues?q=openclaw&sort=updated&order=desc&per_page=5` for recent issues/PRs\n\n#### 📦 ClawHub\n- Fetch `https://clawhub.com` and look for recently added or updated skills\n\n#### 🗞️ Hacker News\n- `https://hn.algolia.com/api/v1/search?query=openclaw&tags=story&numericFilters=created_at_i>` + (current unix timestamp minus 604800 for last 7 days)\n\n---\n\n### Step 2 — Curate\n\nFrom everything collected, select the most noteworthy items. Prioritise:\n- New OpenClaw features, releases, or changelogs\n- New skills published on ClawHub\n- Community tips, tutorials, or showcase posts\n- Bug reports or known issues worth flagging\n- Interesting automations or use cases shared by the community\n- Any news from the broader AI agent ecosystem that's relevant to OpenClaw users\n\nBe honest: if it's been a quiet day, say so. Don't pad the digest.\n\n---\n\n### Step 3 — Telegram message\n\nSend a punchy Telegram message (channel: telegram, to: telegram:1793951355):\n- Header: 🦀 *OpenClaw Daily Digest* — [date]\n- Top 3-5 items as bullets with links\n- One-line summary at the bottom\n- Keep it tight — this is a highlights reel, not a report\n\n---\n\n### Step 4 — Email\n\nSend a full HTML email via the SendClaw API:\n- **From:** krilly@sendclaw.com\n- **To:** anthony@martinwa.org\n- **Subject:** 🦀 OpenClaw Daily Digest — [date]\n- **API:** POST https://sendclaw.com/api/send\n- **Auth:** Bearer sk_15000b789ec9a820f785681a4115396bd22c028e08c652e0\n- **Body:** Rich HTML with all findings grouped by source, links, and a short Krilly editorial note on anything particularly interesting or exciting\n\n---\n\n### Step 5 — Gotify Notification (High Priority)\n\nSend a Gotify notification with high priority to wake the screen:\n- **URL:** http://runtipi.kangaroo-eel.ts.net:8129\n- **Token:** AGKnHafW3FGzBlt\n- **Title:** 🦀 OpenClaw Daily Digest\n- **Message:** Brief summary of top items (1-2 sentences)\n- **Priority:** 8 (high - will wake screen)\n- Use curl to POST to /message?token=AGKnHafW3FGzBlt with JSON: {\"title\": \"...\", \"message\": \"...\", \"priority\": 8}\n\n---\n\n### Notes\n- Get the current date/time via session_status\n- If a subreddit doesn't exist (404), skip it silently\n- Be concise on Telegram, thorough in email\n- Sign off as Krilly the Crab 🦀",
"model": "opencode/kimi-k2.5-free"
},
"delivery": {
"mode": "announce",
"channel": "telegram"
},
"state": {
"nextRunAtMs": 1771540200000,
"lastRunAtMs": 1771444800011,
"lastStatus": "ok",
"lastDurationMs": 326100,
"consecutiveErrors": 0
}
},
{
"id": "10e22343-fbb4-4018-bb08-c5b249662411",
"agentId": "main",
"name": "Check Krilly Email",
"enabled": true,
"notify": false,
"createdAtMs": 1771410489851,
"updatedAtMs": 1771502437803,
"schedule": {
"kind": "cron",
"expr": "*/15 * * * *",
"tz": "Australia/Perth"
},
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "Run this shell script silently: /home/openclaw/.openclaw/workspace/automations/check-krilly-email.sh\n\nThe script checks for new emails and sends its own Telegram notification if any are found. It produces no output when there's nothing new. Run it and reply with NO_REPLY unless there's an error.",
"model": "opencode/kimi-k2.5-free"
},
"state": {
"lastRunAtMs": 1771502400006,
"lastStatus": "ok",
"lastDurationMs": 37797,
"consecutiveErrors": 0,
"nextRunAtMs": 1771503300000
},
"delivery": {
"mode": "none"
}
}
]
}

View File

@@ -0,0 +1,168 @@
{
"19bdb6c4b8bb95b961a08e9783c4e8c693470c326520e52abb4de73a21ec3035": {
"deviceId": "19bdb6c4b8bb95b961a08e9783c4e8c693470c326520e52abb4de73a21ec3035",
"publicKey": "eq45m_VEXdw-ulThS_kVxZqBWrOP7G-uofOfFHlruFY",
"platform": "linux",
"clientId": "gateway-client",
"clientMode": "backend",
"role": "operator",
"roles": [
"operator"
],
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"tokens": {
"operator": {
"token": "Nn7S7lrqMyoaLySzumT9OxT5jd8wKhwNio4cXSVJrVA",
"role": "operator",
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"createdAtMs": 1771335715448,
"lastUsedAtMs": 1771458588334
}
},
"createdAtMs": 1771335715448,
"approvedAtMs": 1771335715448,
"displayName": "agent"
},
"3e9fdd7e77c4f83fde9c33d63b0724f4b35ddf3a9730751e3ce20a15d539227f": {
"deviceId": "3e9fdd7e77c4f83fde9c33d63b0724f4b35ddf3a9730751e3ce20a15d539227f",
"publicKey": "zrrGT5HsReUmZ7UXVaqMrIyhONL58_JtXyPtPPSBmGQ",
"displayName": "Anthonys iMac",
"platform": "macOS 15.5.0",
"clientId": "openclaw-macos",
"clientMode": "ui",
"role": "operator",
"roles": [
"operator",
"node"
],
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"tokens": {
"operator": {
"token": "pOqkzFQ9AUu_W2agKki6NzBzhoyMGY2NKkAz1tZHr-s",
"role": "operator",
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"createdAtMs": 1771336202780,
"rotatedAtMs": 1771460386339,
"lastUsedAtMs": 1771431155136
},
"node": {
"token": "175K58mkmsdlFXJ8p_Kc8XpD6cUGQ1E7NAkdCgSpC5w",
"role": "node",
"scopes": [],
"createdAtMs": 1771337393947,
"rotatedAtMs": 1771459788915,
"lastUsedAtMs": 1771459616261
}
},
"createdAtMs": 1771336202780,
"approvedAtMs": 1771460386339
},
"9f505748b5c905b1b9bcefcebb3741c3beab8f1a4a0349d5a59036cc1d292d64": {
"deviceId": "9f505748b5c905b1b9bcefcebb3741c3beab8f1a4a0349d5a59036cc1d292d64",
"publicKey": "leT9mwLI2XC8UjC1GLhCFKAg2WWT4w8uOj2J5t8JMLY",
"platform": "MacIntel",
"clientId": "openclaw-control-ui",
"clientMode": "webchat",
"role": "operator",
"roles": [
"operator"
],
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"tokens": {
"operator": {
"token": "FuHHYKJ92DbtP3VgL6MGxpRkmqdbpavDPFKySv8v74Y",
"role": "operator",
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"createdAtMs": 1771337885272
}
},
"createdAtMs": 1771337885272,
"approvedAtMs": 1771337885272
},
"11ab169ce102fd1e53d8819dec6af5812ffc5c10358e44a5ac462774a8874066": {
"deviceId": "11ab169ce102fd1e53d8819dec6af5812ffc5c10358e44a5ac462774a8874066",
"publicKey": "hE_rggY5uGJ7fhdrLx--mlk-7tO59bNUpfVRKrGWN68",
"platform": "MacIntel",
"clientId": "openclaw-control-ui",
"clientMode": "webchat",
"role": "operator",
"roles": [
"operator"
],
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"tokens": {
"operator": {
"token": "NCgsseAkGLp-G2XU-dMLbq8grAdiN0JpMvDix5D6L6I",
"role": "operator",
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"createdAtMs": 1771338047123,
"lastUsedAtMs": 1771448513899
}
},
"createdAtMs": 1771338047123,
"approvedAtMs": 1771338047123
},
"9f9275bde17de6212ba1c1bbbff28b12205155dd6fbdd23eb9d5cf841c53b612": {
"deviceId": "9f9275bde17de6212ba1c1bbbff28b12205155dd6fbdd23eb9d5cf841c53b612",
"publicKey": "G44FwHNzRLoRHBdthwpGT2GBe16JveBq11dxp1OnD48",
"platform": "MacIntel",
"clientId": "openclaw-control-ui",
"clientMode": "webchat",
"role": "operator",
"roles": [
"operator"
],
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"tokens": {
"operator": {
"token": "P2i3mtIICyYtfr-jvewaABQNtgaSyztTV3gquF6TcyQ",
"role": "operator",
"scopes": [
"operator.admin",
"operator.approvals",
"operator.pairing"
],
"createdAtMs": 1771343754932,
"lastUsedAtMs": 1771343782083
}
},
"createdAtMs": 1771343754932,
"approvedAtMs": 1771343754932
}
}

570
state-backup/openclaw.json Normal file
View File

@@ -0,0 +1,570 @@
{
"meta": {
"lastTouchedVersion": "2026.2.17",
"lastTouchedAt": "2026-02-19T11:24:31.677Z"
},
"env": {
"shellEnv": {
"enabled": true
},
"vars": {
"GOTIFY_API_KEY": "AGoV3cAUyUMDbyt",
"GOTIFY_URL": "http://runtipi.kangaroo-eel.ts.net:8129",
"N8N_API_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjNDMwMjUzNS1hNWMzLTRkZjAtODIzNi1lZmE5YmVmNTAxMjQiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzY1NTk1MzkyfQ.RrwOyN27-F3Pztxtv4IAyBt1MKKU1l5lWb6nMGpGNic",
"N8N_BASE_URL": "https://n8n.kangaroo-eel.ts.net/"
},
"NIM_API_KEY": "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",
"OPENCODE_API_KEY": "sk-84HEPfjNyw4Lv3YWp5yUV4LAvOlz1oL6wYF00oONARWaneKCPgtEJvHyE61aOypS",
"OPENAI_API_KEY": "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",
"ELEVENLABS_API_KEY": "sk_0dc5e532ba3bfb3fdd8ff13542d8355403f418ba9045be15",
"PERPLEXITY_API_KEY": "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",
"ANTHROPIC_API_KEY": "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",
"MATON_API_KEY": "N5mAp7eJNYUPI7p_1V-agJwwVPqNBlYufzxbYrmAKZJTSRrah-XcMx9y4yzhyfKLaxIS4mPk29rAwmhrBLXJB4VFncsTGKiTn2LpkjR26w",
"OPENROUTER_API_KEY": "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",
"NVIDIA_API_KEY": "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",
"GROQ_API_KEY": "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",
"CEREBRAS_API_KEY": "csk-hpp5jf3dw4myrhnyrv3jcn9npp83ffdt56xd3mfkjktjx4fd"
},
"wizard": {
"lastRunAt": "2026-02-19T09:16:46.931Z",
"lastRunVersion": "2026.2.17",
"lastRunCommand": "doctor",
"lastRunMode": "local"
},
"browser": {
"enabled": true,
"evaluateEnabled": true,
"executablePath": "/usr/bin/chromium",
"headless": true,
"noSandbox": true,
"attachOnly": false
},
"auth": {
"profiles": {
"anthropic:default": {
"provider": "anthropic",
"mode": "token"
},
"openai-codex:default": {
"provider": "openai-codex",
"mode": "oauth"
},
"google-antigravity:anthonymau@gmail.com": {
"provider": "google-antigravity",
"mode": "oauth"
}
},
"order": {}
},
"models": {
"mode": "merge",
"providers": {
"nim": {
"baseUrl": "https://integrate.api.nvidia.com/v1",
"apiKey": "",
"api": "openai-completions",
"models": [
{
"id": "nvidia/llama-3.1-nemotron-70b-instruct",
"name": "Nemotron 70B",
"contextWindow": 131072
},
{
"id": "nvidia/nemotron-3-nano-30b-a3b",
"name": "Nemotron Nano 30B",
"contextWindow": 1048576
},
{
"id": "meta/llama-3.3-70b-instruct",
"name": "Llama 3.3 70B (NIM)",
"contextWindow": 131072
},
{
"id": "qwen/qwen3-next-80b-a3b-thinking",
"name": "Qwen3 80B Thinking (NIM)",
"contextWindow": 131072
}
]
}
},
"bedrockDiscovery": {
"enabled": false
}
},
"nodeHost": {
"browserProxy": {
"enabled": true,
"allowProfiles": [
"*"
]
}
},
"agents": {
"defaults": {
"model": {
"primary": "openai-codex/gpt-5.3-codex",
"fallbacks": [
"anthropic/claude-sonnet-4-6",
"opencode/kimi-k2.5-free",
"opencode/glm-5-free",
"opencode/big-pickle",
"opencode/minimax-m2.5-free"
]
},
"models": {
"anthropic/claude-opus-4-6": {
"alias": "opus"
},
"opencode/minimax-m2.5-free": {},
"opencode/kimi-k2.5-free": {},
"opencode/glm-5-free": {
"alias": "glm5-free"
},
"zai/glm-5": {
"alias": "zai-glm5"
},
"zai/glm-4.7": {
"alias": "nvidia-glm47"
},
"azure-openai-responses/gpt-5-nano": {},
"anthropic/claude-sonnet-4-6": {},
"openai/gpt-5.3-codex": {},
"google-antigravity/gemini-3-pro-low": {},
"google-antigravity/gemini-3-flash": {},
"huggingface/Qwen/Qwen3.5-397B-A17B": {},
"openai-codex/gpt-5.3-codex": {
"alias": "codex53"
},
"google-antigravity/claude-opus-4-6-thinking": {},
"openrouter/qwen/qwen3-coder:free": {
"alias": "qwen-coder-free"
},
"openrouter/z-ai/glm-4.5-air:free": {
"alias": "glm45-free"
},
"openrouter/openai/gpt-oss-120b:free": {
"alias": "gpt-oss-free"
},
"openrouter/stepfun/step-3.5-flash:free": {
"alias": "step-free"
},
"nim/nvidia/llama-3.1-nemotron-70b-instruct": {
"alias": "nemotron-70b"
},
"nim/nvidia/nemotron-3-nano-30b-a3b": {
"alias": "nemotron-nano"
},
"nim/meta/llama-3.3-70b-instruct": {
"alias": "llama-nim"
},
"nim/qwen/qwen3-next-80b-a3b-thinking": {
"alias": "qwen3-nim"
},
"opencode/big-pickle": {
"alias": "big-pickle"
},
"groq/openai/gpt-oss-120b": {
"alias": "gpt-oss-120b"
},
"groq/moonshotai/kimi-k2-instruct-0905": {
"alias": "kimi-k2-groq"
},
"groq/llama-3.3-70b-versatile": {
"alias": "llama33-groq"
},
"groq/meta-llama/llama-4-maverick-17b-128e-instruct": {
"alias": "llama4-maverick"
},
"groq/meta-llama/llama-4-scout-17b-16e-instruct": {
"alias": "llama4-scout"
},
"groq/qwen/qwen3-32b": {
"alias": "qwen3-32b-groq"
},
"groq/openai/gpt-oss-20b": {
"alias": "gpt-oss-20b"
},
"cerebras/zai-glm-4.7": {
"alias": "glm47-cerebras"
},
"cerebras/qwen-3-235b-a22b-instruct-2507": {
"alias": "qwen3-235b-cerebras"
},
"cerebras/gpt-oss-120b": {
"alias": "gpt-oss-120b-cerebras"
},
"cerebras/llama3.1-8b": {
"alias": "llama8b-cerebras"
}
},
"workspace": "/home/openclaw/.openclaw/workspace",
"timeFormat": "12",
"memorySearch": {
"enabled": true,
"sources": [
"memory",
"sessions"
],
"provider": "openai",
"remote": {
"batch": {
"enabled": true
}
},
"store": {
"vector": {
"enabled": true
}
},
"sync": {
"onSessionStart": true
},
"query": {
"hybrid": {
"enabled": true
}
},
"cache": {
"enabled": true
}
},
"contextPruning": {
"mode": "cache-ttl",
"ttl": "1h"
},
"compaction": {
"mode": "safeguard",
"memoryFlush": {
"enabled": true
}
},
"elevatedDefault": "on",
"blockStreamingBreak": "message_end",
"blockStreamingChunk": {
"breakPreference": "paragraph"
},
"heartbeat": {
"every": "1h",
"model": "opencode/kimi-k2.5-free"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
},
"sandbox": {
"mode": "off",
"workspaceAccess": "rw",
"sessionToolsVisibility": "all",
"scope": "shared",
"perSession": true,
"browser": {
"enabled": false,
"headless": true,
"enableNoVnc": true,
"allowHostControl": true,
"autoStart": true
}
}
}
},
"tools": {
"profile": "full",
"allow": [
"*"
],
"byProvider": {},
"web": {
"search": {
"enabled": true,
"provider": "brave",
"apiKey": "BSAxLNeAWMjDWS7853MPNaa6aA3auMQ"
},
"fetch": {
"enabled": true
}
},
"links": {
"enabled": true,
"scope": {
"default": "allow",
"rules": [
{
"action": "allow"
}
]
},
"models": []
},
"sessions": {
"visibility": "all"
},
"loopDetection": {
"detectors": {
"genericRepeat": true,
"knownPollNoProgress": true,
"pingPong": true
}
},
"message": {
"crossContext": {
"allowWithinProvider": true,
"marker": {
"enabled": true
}
},
"broadcast": {
"enabled": true
}
},
"agentToAgent": {
"enabled": true,
"allow": [
"*"
]
},
"elevated": {
"enabled": true,
"allowFrom": {}
},
"exec": {
"host": "gateway",
"security": "full",
"ask": "off",
"notifyOnExit": true,
"applyPatch": {
"enabled": true,
"workspaceOnly": false
}
},
"subagents": {
"tools": {
"allow": [],
"alsoAllow": []
}
},
"sandbox": {
"tools": {
"allow": []
}
}
},
"messages": {
"ackReactionScope": "group-mentions"
},
"commands": {
"native": true,
"nativeSkills": true,
"text": false,
"bash": true,
"config": true,
"debug": true,
"restart": true,
"allowFrom": {}
},
"approvals": {
"exec": {
"enabled": false,
"mode": "targets",
"agentFilter": [
""
],
"sessionFilter": [],
"targets": []
}
},
"session": {
"scope": "per-sender",
"typingMode": "thinking",
"sendPolicy": {
"default": "allow",
"rules": []
}
},
"hooks": {
"enabled": true,
"token": "ec571440175e3740975119ba8b6b97ba3a46b1f8e797cb924dc5c63c98050142",
"defaultSessionKey": "hook:ingress",
"allowRequestSessionKey": false,
"allowedAgentIds": [],
"gmail": {
"includeBody": true,
"allowUnsafeExternalContent": true,
"thinking": "minimal"
},
"internal": {
"enabled": true,
"entries": {
"boot-md": {
"enabled": true
},
"command-logger": {
"enabled": true
},
"bootstrap-extra-files": {
"enabled": true
},
"session-memory": {
"enabled": true
}
}
}
},
"web": {
"enabled": true
},
"channels": {
"telegram": {
"markdown": {
"tables": "code"
},
"enabled": true,
"commands": {
"native": true,
"nativeSkills": false
},
"customCommands": [],
"configWrites": true,
"dmPolicy": "pairing",
"botToken": "8598508497:AAHmTMbnR7un2ADtmsjJr8moQkDOU9ILBps",
"groupPolicy": "allowlist",
"draftChunk": {
"breakPreference": "paragraph"
},
"streamMode": "partial",
"network": {
"autoSelectFamily": true
},
"actions": {
"reactions": true,
"sendMessage": true
},
"linkPreview": true
},
"bluebubbles": {
"enabled": true,
"serverUrl": "http://anthonys-imac.kangaroo-eel.ts.net:1234",
"password": "RecOvery2026!",
"webhookPath": "/bluebubbles-webhook",
"dmPolicy": "pairing",
"groupPolicy": "allowlist"
}
},
"canvasHost": {
"enabled": true,
"liveReload": true
},
"talk": {
"apiKey": ""
},
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"controlUi": {
"allowedOrigins": [
"https://web.telegram.org",
"https://openclaw-ai.kangaroo-eel.ts.net"
],
"dangerouslyDisableDeviceAuth": true
},
"auth": {
"mode": "token",
"token": "e48f4335fff0f5254eda0e984ca79ed61d90df5d70d95165"
},
"tools": {
"allow": [
""
]
},
"tailscale": {
"mode": "serve",
"resetOnExit": false
},
"reload": {
"mode": "hybrid"
},
"http": {
"endpoints": {
"responses": {
"enabled": true,
"files": {
"allowUrl": true
},
"images": {
"allowUrl": true
}
}
}
},
"nodes": {
"browser": {
"mode": "auto"
},
"denyCommands": []
}
},
"memory": {
"backend": "builtin",
"citations": "auto"
},
"skills": {
"allowBundled": [
""
],
"install": {
"nodeManager": "npm"
},
"entries": {
"agentmail": {
"enabled": true,
"env": {
"AGENTMAIL_API_KEY": "am_us_22a6a04a84144467993d5b90be8bbd5d1482ca615a4e17561682dd3d6831f932"
}
},
"stealth-browser": {
"enabled": false
},
"healthcheck": {
"enabled": true
},
"n8n": {
"apiKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjNDMwMjUzNS1hNWMzLTRkZjAtODIzNi1lZmE5YmVmNTAxMjQiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzY1NTk1MzkyfQ.RrwOyN27-F3Pztxtv4IAyBt1MKKU1l5lWb6nMGpGNic"
},
"notion": {
"apiKey": "secret_WbYevYCbHRpMngedlRaVXA8rCj0nlVPefciUzr1GWna"
},
"openai-whisper-api": {
"apiKey": "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"
},
"goplaces": {
"apiKey": "AIzaSyDSxyVL5fv3RstiY3YUV76pavuhiZMMXAA"
}
}
},
"plugins": {
"enabled": true,
"entries": {
"telegram": {
"enabled": true
},
"bluebubbles": {
"enabled": true
},
"device-pair": {
"enabled": true
},
"google-antigravity-auth": {
"enabled": true
},
"llm-task": {
"enabled": true,
"config": {
"allowedModels": []
}
},
"memory-core": {
"enabled": true
}
}
}
}