opencode-skills-collection 4.0.68 → 4.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +304 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-local-mac-mini
|
|
3
|
+
description: Set up OpenClaw locally and run it reliably on a Mac mini for private,
|
|
4
|
+
always-on local agent workflows.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# OpenClaw Local + Mac mini Setup
|
|
21
|
+
|
|
22
|
+
Use this skill when you want to run [OpenClaw](https://github.com/openclaw/openclaw) on a developer laptop or promote it to a stable Mac mini host. Covers cloning and bootstrapping, Docker Compose configuration, Mac mini hardware optimization, networking, monitoring, and production-grade launchd services.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
- macOS 13 (Ventura) or later on Apple Silicon (M1/M2/M4 Mac mini recommended)
|
|
27
|
+
- Docker Desktop for Mac or OrbStack installed
|
|
28
|
+
- Git, Node.js (v18+), and a package manager (npm or pnpm)
|
|
29
|
+
- API keys for your chosen LLM provider (OpenAI, Anthropic, or local Ollama)
|
|
30
|
+
- At least 16 GB RAM (32 GB recommended for local model serving)
|
|
31
|
+
|
|
32
|
+
## Local Setup (Any Dev Machine)
|
|
33
|
+
|
|
34
|
+
### Clone and Bootstrap
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Clone the repository
|
|
38
|
+
git clone https://github.com/openclaw/openclaw.git
|
|
39
|
+
cd openclaw
|
|
40
|
+
|
|
41
|
+
# Review the upstream README for current prerequisites
|
|
42
|
+
cat README.md
|
|
43
|
+
|
|
44
|
+
# Copy the example environment file
|
|
45
|
+
cp .env.example .env
|
|
46
|
+
|
|
47
|
+
# Edit .env with your provider keys and configuration
|
|
48
|
+
# At minimum, set the model provider and API key
|
|
49
|
+
cat > .env << 'ENV'
|
|
50
|
+
# LLM Provider Configuration
|
|
51
|
+
OPENAI_API_KEY=sk-your-openai-key-here
|
|
52
|
+
# Or for Anthropic:
|
|
53
|
+
# ANTHROPIC_API_KEY=sk-ant-your-key-here
|
|
54
|
+
# Or for local Ollama:
|
|
55
|
+
# OLLAMA_BASE_URL=http://localhost:11434
|
|
56
|
+
|
|
57
|
+
# Application settings
|
|
58
|
+
NODE_ENV=development
|
|
59
|
+
PORT=3000
|
|
60
|
+
HOST=0.0.0.0
|
|
61
|
+
LOG_LEVEL=info
|
|
62
|
+
|
|
63
|
+
# Database (if applicable)
|
|
64
|
+
DATABASE_URL=sqlite:./data/openclaw.db
|
|
65
|
+
ENV
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Install Dependencies and Run
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Install dependencies
|
|
72
|
+
npm install
|
|
73
|
+
# Or with pnpm:
|
|
74
|
+
# pnpm install
|
|
75
|
+
|
|
76
|
+
# Run database migrations if needed
|
|
77
|
+
npm run db:migrate
|
|
78
|
+
|
|
79
|
+
# Start the development server
|
|
80
|
+
npm run dev
|
|
81
|
+
|
|
82
|
+
# Verify startup
|
|
83
|
+
curl -s http://localhost:3000/api/health | jq .
|
|
84
|
+
# Expected: {"status":"ok","version":"..."}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Validate the Setup
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Check the API health endpoint
|
|
91
|
+
curl -f http://localhost:3000/api/health
|
|
92
|
+
|
|
93
|
+
# Check the UI loads
|
|
94
|
+
curl -s -o /dev/null -w '%{http_code}' http://localhost:3000/
|
|
95
|
+
# Expected: 200
|
|
96
|
+
|
|
97
|
+
# Run built-in tests if available
|
|
98
|
+
npm test
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Docker Compose Setup
|
|
102
|
+
|
|
103
|
+
### docker-compose.yml
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
version: "3.8"
|
|
107
|
+
|
|
108
|
+
services:
|
|
109
|
+
openclaw:
|
|
110
|
+
build:
|
|
111
|
+
context: .
|
|
112
|
+
dockerfile: Dockerfile
|
|
113
|
+
image: openclaw:latest
|
|
114
|
+
container_name: openclaw
|
|
115
|
+
restart: unless-stopped
|
|
116
|
+
ports:
|
|
117
|
+
- "3000:3000"
|
|
118
|
+
env_file:
|
|
119
|
+
- .env
|
|
120
|
+
environment:
|
|
121
|
+
- NODE_ENV=production
|
|
122
|
+
- HOST=0.0.0.0
|
|
123
|
+
- PORT=3000
|
|
124
|
+
volumes:
|
|
125
|
+
- openclaw-data:/app/data
|
|
126
|
+
- ./config:/app/config:ro
|
|
127
|
+
healthcheck:
|
|
128
|
+
test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
|
|
129
|
+
interval: 30s
|
|
130
|
+
timeout: 10s
|
|
131
|
+
retries: 3
|
|
132
|
+
start_period: 15s
|
|
133
|
+
deploy:
|
|
134
|
+
resources:
|
|
135
|
+
limits:
|
|
136
|
+
memory: 4G
|
|
137
|
+
reservations:
|
|
138
|
+
memory: 1G
|
|
139
|
+
logging:
|
|
140
|
+
driver: json-file
|
|
141
|
+
options:
|
|
142
|
+
max-size: "50m"
|
|
143
|
+
max-file: "5"
|
|
144
|
+
|
|
145
|
+
# Optional: Redis for caching/queues
|
|
146
|
+
redis:
|
|
147
|
+
image: redis:7-alpine
|
|
148
|
+
container_name: openclaw-redis
|
|
149
|
+
restart: unless-stopped
|
|
150
|
+
volumes:
|
|
151
|
+
- redis-data:/data
|
|
152
|
+
command: redis-server --appendonly yes --maxmemory 512mb --maxmemory-policy allkeys-lru
|
|
153
|
+
healthcheck:
|
|
154
|
+
test: ["CMD", "redis-cli", "ping"]
|
|
155
|
+
interval: 10s
|
|
156
|
+
timeout: 5s
|
|
157
|
+
retries: 3
|
|
158
|
+
|
|
159
|
+
# Optional: Ollama for local model serving
|
|
160
|
+
ollama:
|
|
161
|
+
image: ollama/ollama:latest
|
|
162
|
+
container_name: openclaw-ollama
|
|
163
|
+
restart: unless-stopped
|
|
164
|
+
ports:
|
|
165
|
+
- "11434:11434"
|
|
166
|
+
volumes:
|
|
167
|
+
- ollama-models:/root/.ollama
|
|
168
|
+
deploy:
|
|
169
|
+
resources:
|
|
170
|
+
limits:
|
|
171
|
+
memory: 16G
|
|
172
|
+
healthcheck:
|
|
173
|
+
test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
|
|
174
|
+
interval: 30s
|
|
175
|
+
timeout: 10s
|
|
176
|
+
retries: 3
|
|
177
|
+
|
|
178
|
+
volumes:
|
|
179
|
+
openclaw-data:
|
|
180
|
+
redis-data:
|
|
181
|
+
ollama-models:
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Running with Docker Compose
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# Build and start all services
|
|
188
|
+
docker compose up -d --build
|
|
189
|
+
|
|
190
|
+
# Check service status
|
|
191
|
+
docker compose ps
|
|
192
|
+
|
|
193
|
+
# View logs
|
|
194
|
+
docker compose logs -f openclaw
|
|
195
|
+
docker compose logs -f --tail=100 ollama
|
|
196
|
+
|
|
197
|
+
# Pull a model into Ollama (if using local models)
|
|
198
|
+
docker exec openclaw-ollama ollama pull llama3:8b
|
|
199
|
+
docker exec openclaw-ollama ollama list
|
|
200
|
+
|
|
201
|
+
# Restart a single service
|
|
202
|
+
docker compose restart openclaw
|
|
203
|
+
|
|
204
|
+
# Stop everything
|
|
205
|
+
docker compose down
|
|
206
|
+
|
|
207
|
+
# Stop and remove volumes (full reset)
|
|
208
|
+
docker compose down -v
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Mac mini Production Setup
|
|
212
|
+
|
|
213
|
+
### macOS Hardening and Baseline
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Enable automatic security updates
|
|
217
|
+
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true
|
|
218
|
+
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool true
|
|
219
|
+
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall -bool true
|
|
220
|
+
|
|
221
|
+
# Enable FileVault disk encryption
|
|
222
|
+
sudo fdesetup enable
|
|
223
|
+
|
|
224
|
+
# Disable sleep (headless server should never sleep)
|
|
225
|
+
sudo pmset -a sleep 0
|
|
226
|
+
sudo pmset -a disksleep 0
|
|
227
|
+
sudo pmset -a displaysleep 0
|
|
228
|
+
|
|
229
|
+
# Enable auto-restart after power failure
|
|
230
|
+
sudo pmset -a autorestart 1
|
|
231
|
+
|
|
232
|
+
# Disable screen saver
|
|
233
|
+
defaults -currentHost write com.apple.screensaver idleTime 0
|
|
234
|
+
|
|
235
|
+
# Set hostname
|
|
236
|
+
sudo scutil --set ComputerName "openclaw-mini"
|
|
237
|
+
sudo scutil --set HostName "openclaw-mini"
|
|
238
|
+
sudo scutil --set LocalHostName "openclaw-mini"
|
|
239
|
+
|
|
240
|
+
# Verify power settings
|
|
241
|
+
pmset -g
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Dedicated User Account
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Create a dedicated service user
|
|
248
|
+
sudo sysadminctl -addUser openclaw -fullName "OpenClaw Service" -password "temp-change-me" -admin
|
|
249
|
+
|
|
250
|
+
# Switch to the service user for setup
|
|
251
|
+
su - openclaw
|
|
252
|
+
|
|
253
|
+
# Clone and configure OpenClaw in the user's home
|
|
254
|
+
cd ~
|
|
255
|
+
git clone https://github.com/openclaw/openclaw.git
|
|
256
|
+
cd openclaw
|
|
257
|
+
cp .env.example .env
|
|
258
|
+
# Edit .env with production values
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Secrets Management
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# Store API keys in macOS Keychain instead of plaintext .env
|
|
265
|
+
security add-generic-password -a openclaw -s "OPENAI_API_KEY" -w "sk-your-key-here"
|
|
266
|
+
security add-generic-password -a openclaw -s "ANTHROPIC_API_KEY" -w "sk-ant-your-key-here"
|
|
267
|
+
|
|
268
|
+
# Retrieve a secret from Keychain in scripts
|
|
269
|
+
OPENAI_API_KEY=$(security find-generic-password -a openclaw -s "OPENAI_API_KEY" -w)
|
|
270
|
+
export OPENAI_API_KEY
|
|
271
|
+
|
|
272
|
+
# Helper script to load secrets from Keychain
|
|
273
|
+
cat > /Users/openclaw/openclaw/load-secrets.sh << 'SCRIPT'
|
|
274
|
+
#!/usr/bin/env bash
|
|
275
|
+
export OPENAI_API_KEY=$(security find-generic-password -a openclaw -s "OPENAI_API_KEY" -w 2>/dev/null)
|
|
276
|
+
export ANTHROPIC_API_KEY=$(security find-generic-password -a openclaw -s "ANTHROPIC_API_KEY" -w 2>/dev/null)
|
|
277
|
+
SCRIPT
|
|
278
|
+
chmod 700 /Users/openclaw/openclaw/load-secrets.sh
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### launchd Service Configuration
|
|
282
|
+
|
|
283
|
+
```xml
|
|
284
|
+
<!-- /Library/LaunchDaemons/com.openclaw.service.plist -->
|
|
285
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
286
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
|
287
|
+
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
288
|
+
<plist version="1.0">
|
|
289
|
+
<dict>
|
|
290
|
+
<key>Label</key>
|
|
291
|
+
<string>com.openclaw.service</string>
|
|
292
|
+
|
|
293
|
+
<key>UserName</key>
|
|
294
|
+
<string>openclaw</string>
|
|
295
|
+
|
|
296
|
+
<key>WorkingDirectory</key>
|
|
297
|
+
<string>/Users/openclaw/openclaw</string>
|
|
298
|
+
|
|
299
|
+
<key>ProgramArguments</key>
|
|
300
|
+
<array>
|
|
301
|
+
<string>/bin/bash</string>
|
|
302
|
+
<string>-c</string>
|
|
303
|
+
<string>source ./load-secrets.sh && /usr/local/bin/node ./dist/server.js</string>
|
|
304
|
+
</array>
|
|
305
|
+
|
|
306
|
+
<key>EnvironmentVariables</key>
|
|
307
|
+
<dict>
|
|
308
|
+
<key>NODE_ENV</key>
|
|
309
|
+
<string>production</string>
|
|
310
|
+
<key>PORT</key>
|
|
311
|
+
<string>3000</string>
|
|
312
|
+
<key>HOST</key>
|
|
313
|
+
<string>0.0.0.0</string>
|
|
314
|
+
<key>PATH</key>
|
|
315
|
+
<string>/usr/local/bin:/usr/bin:/bin</string>
|
|
316
|
+
</dict>
|
|
317
|
+
|
|
318
|
+
<key>RunAtLoad</key>
|
|
319
|
+
<true/>
|
|
320
|
+
|
|
321
|
+
<key>KeepAlive</key>
|
|
322
|
+
<dict>
|
|
323
|
+
<key>SuccessfulExit</key>
|
|
324
|
+
<false/>
|
|
325
|
+
</dict>
|
|
326
|
+
|
|
327
|
+
<key>ThrottleInterval</key>
|
|
328
|
+
<integer>10</integer>
|
|
329
|
+
|
|
330
|
+
<key>StandardOutPath</key>
|
|
331
|
+
<string>/var/log/openclaw/stdout.log</string>
|
|
332
|
+
|
|
333
|
+
<key>StandardErrorPath</key>
|
|
334
|
+
<string>/var/log/openclaw/stderr.log</string>
|
|
335
|
+
|
|
336
|
+
<key>SoftResourceLimits</key>
|
|
337
|
+
<dict>
|
|
338
|
+
<key>NumberOfFiles</key>
|
|
339
|
+
<integer>65536</integer>
|
|
340
|
+
</dict>
|
|
341
|
+
</dict>
|
|
342
|
+
</plist>
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
# Create log directory
|
|
347
|
+
sudo mkdir -p /var/log/openclaw
|
|
348
|
+
sudo chown openclaw:staff /var/log/openclaw
|
|
349
|
+
|
|
350
|
+
# Load the service
|
|
351
|
+
sudo launchctl load -w /Library/LaunchDaemons/com.openclaw.service.plist
|
|
352
|
+
|
|
353
|
+
# Verify it is running
|
|
354
|
+
sudo launchctl list | grep openclaw
|
|
355
|
+
curl -f http://localhost:3000/api/health
|
|
356
|
+
|
|
357
|
+
# Stop/start/restart the service
|
|
358
|
+
sudo launchctl stop com.openclaw.service
|
|
359
|
+
sudo launchctl start com.openclaw.service
|
|
360
|
+
|
|
361
|
+
# Unload the service (disable)
|
|
362
|
+
sudo launchctl unload /Library/LaunchDaemons/com.openclaw.service.plist
|
|
363
|
+
|
|
364
|
+
# View logs
|
|
365
|
+
tail -f /var/log/openclaw/stdout.log
|
|
366
|
+
tail -f /var/log/openclaw/stderr.log
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Docker Compose via launchd
|
|
370
|
+
|
|
371
|
+
```xml
|
|
372
|
+
<!-- /Library/LaunchDaemons/com.openclaw.docker.plist -->
|
|
373
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
374
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
|
375
|
+
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
376
|
+
<plist version="1.0">
|
|
377
|
+
<dict>
|
|
378
|
+
<key>Label</key>
|
|
379
|
+
<string>com.openclaw.docker</string>
|
|
380
|
+
|
|
381
|
+
<key>ProgramArguments</key>
|
|
382
|
+
<array>
|
|
383
|
+
<string>/usr/local/bin/docker</string>
|
|
384
|
+
<string>compose</string>
|
|
385
|
+
<string>-f</string>
|
|
386
|
+
<string>/Users/openclaw/openclaw/docker-compose.yml</string>
|
|
387
|
+
<string>up</string>
|
|
388
|
+
</array>
|
|
389
|
+
|
|
390
|
+
<key>RunAtLoad</key>
|
|
391
|
+
<true/>
|
|
392
|
+
|
|
393
|
+
<key>KeepAlive</key>
|
|
394
|
+
<true/>
|
|
395
|
+
|
|
396
|
+
<key>StandardOutPath</key>
|
|
397
|
+
<string>/var/log/openclaw/docker-stdout.log</string>
|
|
398
|
+
|
|
399
|
+
<key>StandardErrorPath</key>
|
|
400
|
+
<string>/var/log/openclaw/docker-stderr.log</string>
|
|
401
|
+
</dict>
|
|
402
|
+
</plist>
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
## Contents
|
|
407
|
+
|
|
408
|
+
- [Networking](references/details.md)
|
|
409
|
+
- [Monitoring](references/details.md)
|
|
410
|
+
- [Validation Checklist](references/details.md)
|
|
411
|
+
- [Troubleshooting](references/details.md)
|
|
412
|
+
- [Related Skills](references/details.md)
|
|
413
|
+
|
|
414
|
+
## When to Use
|
|
415
|
+
|
|
416
|
+
- Running OpenClaw as a private, always-on local AI agent
|
|
417
|
+
- Setting up a dedicated Mac mini as a home-lab AI server
|
|
418
|
+
- Deploying OpenClaw with Docker Compose for reproducible environments
|
|
419
|
+
- Optimizing macOS for headless server operation
|
|
420
|
+
- Monitoring a local AI service for uptime and performance
|
|
421
|
+
|
|
422
|
+
## Limitations
|
|
423
|
+
|
|
424
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
425
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
426
|
+
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Details (moved from SKILL.md)
|
|
2
|
+
|
|
3
|
+
> Extended reference content for `openclaw-local-mac-mini`, kept under `references/` so the entrypoint stays within the audit budget.
|
|
4
|
+
|
|
5
|
+
## Networking
|
|
6
|
+
|
|
7
|
+
### Tailscale for Secure Remote Access
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Install Tailscale on the Mac mini
|
|
11
|
+
brew install --cask tailscale
|
|
12
|
+
|
|
13
|
+
# Authenticate and connect
|
|
14
|
+
open /Applications/Tailscale.app
|
|
15
|
+
# Or via CLI:
|
|
16
|
+
tailscale up --authkey tskey-auth-your-key-here
|
|
17
|
+
|
|
18
|
+
# Verify Tailscale IP
|
|
19
|
+
tailscale ip -4
|
|
20
|
+
# e.g., 100.64.x.x
|
|
21
|
+
|
|
22
|
+
# Access OpenClaw from any Tailscale device
|
|
23
|
+
curl http://100.64.x.x:3000/api/health
|
|
24
|
+
|
|
25
|
+
# Enable MagicDNS for friendly names
|
|
26
|
+
# Access via: http://openclaw-mini:3000
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Nginx Reverse Proxy (Optional)
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Install nginx via Homebrew
|
|
33
|
+
brew install nginx
|
|
34
|
+
|
|
35
|
+
# Configure reverse proxy
|
|
36
|
+
cat > /opt/homebrew/etc/nginx/servers/openclaw.conf << 'NGINX'
|
|
37
|
+
server {
|
|
38
|
+
listen 80;
|
|
39
|
+
server_name openclaw-mini openclaw-mini.local;
|
|
40
|
+
|
|
41
|
+
location / {
|
|
42
|
+
proxy_pass http://127.0.0.1:3000;
|
|
43
|
+
proxy_http_version 1.1;
|
|
44
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
45
|
+
proxy_set_header Connection "upgrade";
|
|
46
|
+
proxy_set_header Host $host;
|
|
47
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
48
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
49
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
50
|
+
proxy_read_timeout 300s;
|
|
51
|
+
proxy_send_timeout 300s;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
# Rate limiting for API endpoints
|
|
55
|
+
location /api/ {
|
|
56
|
+
limit_req zone=api burst=20 nodelay;
|
|
57
|
+
proxy_pass http://127.0.0.1:3000;
|
|
58
|
+
proxy_set_header Host $host;
|
|
59
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
NGINX
|
|
63
|
+
|
|
64
|
+
# Test and reload nginx
|
|
65
|
+
nginx -t
|
|
66
|
+
brew services restart nginx
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### macOS Firewall
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Enable the application firewall
|
|
73
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
|
|
74
|
+
|
|
75
|
+
# Allow specific apps
|
|
76
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/bin/node
|
|
77
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /opt/homebrew/bin/nginx
|
|
78
|
+
|
|
79
|
+
# Block all incoming except allowed
|
|
80
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setblockall on
|
|
81
|
+
|
|
82
|
+
# Verify
|
|
83
|
+
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
## Monitoring
|
|
88
|
+
|
|
89
|
+
### Health Check Script
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
#!/usr/bin/env bash
|
|
93
|
+
# /Users/openclaw/openclaw/healthcheck.sh
|
|
94
|
+
set -euo pipefail
|
|
95
|
+
|
|
96
|
+
ENDPOINT="http://localhost:3000/api/health"
|
|
97
|
+
LOGFILE="/var/log/openclaw/healthcheck.log"
|
|
98
|
+
ALERT_EMAIL="admin@example.com"
|
|
99
|
+
MAX_FAILURES=3
|
|
100
|
+
FAILURE_COUNT_FILE="/tmp/openclaw-failures"
|
|
101
|
+
|
|
102
|
+
timestamp() { date '+%Y-%m-%d %H:%M:%S'; }
|
|
103
|
+
|
|
104
|
+
# Initialize failure counter
|
|
105
|
+
if [ ! -f "$FAILURE_COUNT_FILE" ]; then
|
|
106
|
+
echo 0 > "$FAILURE_COUNT_FILE"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
if curl -sf --max-time 10 "$ENDPOINT" > /dev/null 2>&1; then
|
|
110
|
+
echo "$(timestamp) OK" >> "$LOGFILE"
|
|
111
|
+
echo 0 > "$FAILURE_COUNT_FILE"
|
|
112
|
+
else
|
|
113
|
+
FAILURES=$(cat "$FAILURE_COUNT_FILE")
|
|
114
|
+
FAILURES=$((FAILURES + 1))
|
|
115
|
+
echo "$FAILURES" > "$FAILURE_COUNT_FILE"
|
|
116
|
+
echo "$(timestamp) FAIL (count: $FAILURES)" >> "$LOGFILE"
|
|
117
|
+
|
|
118
|
+
if [ "$FAILURES" -ge "$MAX_FAILURES" ]; then
|
|
119
|
+
echo "$(timestamp) ALERT: OpenClaw down for $FAILURES checks" >> "$LOGFILE"
|
|
120
|
+
# Attempt restart
|
|
121
|
+
sudo launchctl stop com.openclaw.service
|
|
122
|
+
sleep 2
|
|
123
|
+
sudo launchctl start com.openclaw.service
|
|
124
|
+
echo "$(timestamp) Service restarted" >> "$LOGFILE"
|
|
125
|
+
echo 0 > "$FAILURE_COUNT_FILE"
|
|
126
|
+
fi
|
|
127
|
+
fi
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Schedule health checks every 5 minutes via cron
|
|
132
|
+
crontab -e
|
|
133
|
+
# Add:
|
|
134
|
+
# */5 * * * * /Users/openclaw/openclaw/healthcheck.sh
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Resource Monitoring
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Monitor CPU and memory usage of OpenClaw
|
|
141
|
+
ps aux | grep -E 'node|docker' | grep -v grep
|
|
142
|
+
|
|
143
|
+
# Continuous monitoring with top (non-interactive)
|
|
144
|
+
top -l 1 -s 0 | grep -E 'node|docker'
|
|
145
|
+
|
|
146
|
+
# Disk usage check
|
|
147
|
+
df -h /Users/openclaw
|
|
148
|
+
du -sh /Users/openclaw/openclaw/data/
|
|
149
|
+
|
|
150
|
+
# Docker resource usage
|
|
151
|
+
docker stats --no-stream openclaw openclaw-redis openclaw-ollama
|
|
152
|
+
|
|
153
|
+
# macOS Activity Monitor from CLI
|
|
154
|
+
sudo powermetrics --samplers cpu_power,gpu_power -n 1
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Log Rotation
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# /etc/newsyslog.d/openclaw.conf
|
|
161
|
+
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
|
|
162
|
+
/var/log/openclaw/stdout.log openclaw:staff 644 10 5120 * JN
|
|
163
|
+
/var/log/openclaw/stderr.log openclaw:staff 644 10 5120 * JN
|
|
164
|
+
/var/log/openclaw/healthcheck.log openclaw:staff 644 10 1024 * JN
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Force log rotation
|
|
169
|
+
sudo newsyslog -F
|
|
170
|
+
|
|
171
|
+
# Or use a simple cron-based rotation
|
|
172
|
+
cat > /Users/openclaw/rotate-logs.sh << 'ROTATE'
|
|
173
|
+
#!/usr/bin/env bash
|
|
174
|
+
LOGDIR="/var/log/openclaw"
|
|
175
|
+
for log in "$LOGDIR"/*.log; do
|
|
176
|
+
if [ -f "$log" ] && [ "$(stat -f%z "$log")" -gt 52428800 ]; then
|
|
177
|
+
mv "$log" "${log}.$(date +%Y%m%d%H%M%S)"
|
|
178
|
+
gzip "${log}."*
|
|
179
|
+
touch "$log"
|
|
180
|
+
fi
|
|
181
|
+
done
|
|
182
|
+
# Keep only last 10 rotated logs
|
|
183
|
+
ls -t "$LOGDIR"/*.gz 2>/dev/null | tail -n +11 | xargs rm -f
|
|
184
|
+
ROTATE
|
|
185
|
+
chmod +x /Users/openclaw/rotate-logs.sh
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
## Validation Checklist
|
|
190
|
+
|
|
191
|
+
- App starts after reboot without manual intervention (`launchctl list | grep openclaw`)
|
|
192
|
+
- Health check succeeds from local network (`curl -f http://<ip>:3000/api/health`)
|
|
193
|
+
- Health check succeeds via Tailscale (`curl -f http://100.64.x.x:3000/api/health`)
|
|
194
|
+
- Secrets are not committed and not world-readable (`ls -la .env`, check `.gitignore`)
|
|
195
|
+
- Access to admin interfaces is restricted to trusted users/devices
|
|
196
|
+
- Docker volumes persist across container restarts (`docker compose down && docker compose up -d`)
|
|
197
|
+
- Log rotation is active and disk usage stays bounded
|
|
198
|
+
- Automatic restart works after crash (kill the process and verify relaunch)
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
## Troubleshooting
|
|
202
|
+
|
|
203
|
+
| Symptom | Diagnostic | Fix |
|
|
204
|
+
|---|---|---|
|
|
205
|
+
| Slow responses | `top -l 1`, check model backend | Verify RAM/CPU pressure; use a smaller model or remote API |
|
|
206
|
+
| Boot failures | `sudo launchctl list`, check logs | Inspect `/var/log/openclaw/stderr.log`, fix working directory |
|
|
207
|
+
| Auth errors | Check `.env` or Keychain secrets | Re-check provider keys, scopes, and endpoint URLs |
|
|
208
|
+
| Random crashes | `log show --predicate 'process == "node"'` | Pin dependency versions, check for OOM in `dmesg` |
|
|
209
|
+
| Port 3000 in use | `lsof -i :3000` | Kill conflicting process or change PORT in `.env` |
|
|
210
|
+
| Docker won't start | `docker info`, `docker compose logs` | Ensure Docker Desktop/OrbStack is running |
|
|
211
|
+
| Ollama model slow | `docker stats openclaw-ollama` | Allocate more RAM to Docker, use quantized model |
|
|
212
|
+
| Tailscale unreachable | `tailscale status`, `ping 100.64.x.x` | Re-authenticate with `tailscale up`, check firewall |
|
|
213
|
+
| Disk full | `df -h`, `du -sh ~/openclaw/data/` | Prune Docker images (`docker system prune`), rotate logs |
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
## Related Skills
|
|
217
|
+
|
|
218
|
+
- ollama-stack (`ollama-stack`) - Local model serving patterns
|
|
219
|
+
- mac-mini-llm-lab (`mac-mini-llm-lab`) - Mac mini reliability and security baseline
|
|
220
|
+
- startup-it-troubleshooting (`startup-it-troubleshooting`) - Small-team operational triage
|
|
221
|
+
|