@intent-systems/nexus 2026.1.5-3
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/CHANGELOG.md +222 -0
- package/LICENSE +21 -0
- package/README-header.png +0 -0
- package/README.md +462 -0
- package/dist/agents/agent-paths.js +16 -0
- package/dist/agents/agent-scope.js +44 -0
- package/dist/agents/auth-profiles.js +626 -0
- package/dist/agents/bash-process-registry.js +126 -0
- package/dist/agents/bash-tools.js +838 -0
- package/dist/agents/chutes-oauth.js +47 -0
- package/dist/agents/clawdbot-tools.js +62 -0
- package/dist/agents/context.js +34 -0
- package/dist/agents/defaults.js +6 -0
- package/dist/agents/memory-search.js +80 -0
- package/dist/agents/model-auth.js +115 -0
- package/dist/agents/model-catalog.js +55 -0
- package/dist/agents/model-fallback.js +210 -0
- package/dist/agents/model-scan.js +263 -0
- package/dist/agents/model-selection.js +152 -0
- package/dist/agents/models-config.js +171 -0
- package/dist/agents/nexus-tools.js +46 -0
- package/dist/agents/pi-embedded-block-chunker.js +188 -0
- package/dist/agents/pi-embedded-helpers.js +139 -0
- package/dist/agents/pi-embedded-runner.js +932 -0
- package/dist/agents/pi-embedded-subscribe.js +541 -0
- package/dist/agents/pi-embedded-utils.js +20 -0
- package/dist/agents/pi-embedded.js +1 -0
- package/dist/agents/pi-extensions/compaction-safeguard.js +140 -0
- package/dist/agents/pi-tool-definition-adapter.js +17 -0
- package/dist/agents/pi-tools.js +510 -0
- package/dist/agents/pi-tools.schema.js +358 -0
- package/dist/agents/sandbox-paths.js +68 -0
- package/dist/agents/sandbox.js +667 -0
- package/dist/agents/shell-utils.js +53 -0
- package/dist/agents/skill-runner.js +224 -0
- package/dist/agents/skill-state.js +164 -0
- package/dist/agents/skill-tools.js +191 -0
- package/dist/agents/skill-usage.js +43 -0
- package/dist/agents/skills-install.js +244 -0
- package/dist/agents/skills-status.js +157 -0
- package/dist/agents/skills.js +472 -0
- package/dist/agents/subagent-registry.js +321 -0
- package/dist/agents/subagent-registry.store.js +47 -0
- package/dist/agents/system-prompt.js +179 -0
- package/dist/agents/timeout.js +26 -0
- package/dist/agents/tool-display.js +155 -0
- package/dist/agents/tool-display.json +236 -0
- package/dist/agents/tool-images.js +138 -0
- package/dist/agents/tool-policy.js +87 -0
- package/dist/agents/tools/agent-step.js +41 -0
- package/dist/agents/tools/browser-tool.js +295 -0
- package/dist/agents/tools/canvas-tool.js +193 -0
- package/dist/agents/tools/common.js +88 -0
- package/dist/agents/tools/cron-tool.js +141 -0
- package/dist/agents/tools/discord-actions-guild.js +186 -0
- package/dist/agents/tools/discord-actions-messaging.js +313 -0
- package/dist/agents/tools/discord-actions-moderation.js +70 -0
- package/dist/agents/tools/discord-actions.js +56 -0
- package/dist/agents/tools/discord-schema.js +199 -0
- package/dist/agents/tools/discord-tool.js +16 -0
- package/dist/agents/tools/gateway-tool.js +46 -0
- package/dist/agents/tools/gateway.js +28 -0
- package/dist/agents/tools/image-tool.js +140 -0
- package/dist/agents/tools/memory-tool.js +92 -0
- package/dist/agents/tools/nodes-tool.js +413 -0
- package/dist/agents/tools/nodes-utils.js +92 -0
- package/dist/agents/tools/sessions-announce-target.js +35 -0
- package/dist/agents/tools/sessions-helpers.js +88 -0
- package/dist/agents/tools/sessions-history-tool.js +137 -0
- package/dist/agents/tools/sessions-list-tool.js +196 -0
- package/dist/agents/tools/sessions-send-helpers.js +103 -0
- package/dist/agents/tools/sessions-send-tool.js +371 -0
- package/dist/agents/tools/sessions-spawn-tool.js +319 -0
- package/dist/agents/tools/slack-actions.js +129 -0
- package/dist/agents/tools/slack-schema.js +59 -0
- package/dist/agents/tools/slack-tool.js +16 -0
- package/dist/agents/tools/telegram-actions.js +159 -0
- package/dist/agents/tools/telegram-schema.js +28 -0
- package/dist/agents/tools/telegram-tool.js +16 -0
- package/dist/agents/tools/whatsapp-login-tool.js +63 -0
- package/dist/agents/usage.js +58 -0
- package/dist/agents/workspace.js +264 -0
- package/dist/auto-reply/chunk.js +177 -0
- package/dist/auto-reply/command-auth.js +44 -0
- package/dist/auto-reply/command-detection.js +22 -0
- package/dist/auto-reply/envelope.js +30 -0
- package/dist/auto-reply/group-activation.js +20 -0
- package/dist/auto-reply/heartbeat.js +58 -0
- package/dist/auto-reply/model.js +22 -0
- package/dist/auto-reply/reply/abort.js +14 -0
- package/dist/auto-reply/reply/agent-runner.js +426 -0
- package/dist/auto-reply/reply/bash-command.js +314 -0
- package/dist/auto-reply/reply/block-streaming.js +34 -0
- package/dist/auto-reply/reply/body.js +29 -0
- package/dist/auto-reply/reply/commands.js +332 -0
- package/dist/auto-reply/reply/directive-handling.js +626 -0
- package/dist/auto-reply/reply/directives.js +59 -0
- package/dist/auto-reply/reply/dispatch-from-config.js +23 -0
- package/dist/auto-reply/reply/followup-runner.js +181 -0
- package/dist/auto-reply/reply/groups.js +152 -0
- package/dist/auto-reply/reply/mentions.js +64 -0
- package/dist/auto-reply/reply/model-selection.js +209 -0
- package/dist/auto-reply/reply/queue.js +399 -0
- package/dist/auto-reply/reply/reply-dispatcher.js +68 -0
- package/dist/auto-reply/reply/reply-tags.js +26 -0
- package/dist/auto-reply/reply/session-updates.js +103 -0
- package/dist/auto-reply/reply/session.js +169 -0
- package/dist/auto-reply/reply/typing.js +125 -0
- package/dist/auto-reply/reply.js +655 -0
- package/dist/auto-reply/send-policy.js +28 -0
- package/dist/auto-reply/status.js +197 -0
- package/dist/auto-reply/templating.js +9 -0
- package/dist/auto-reply/thinking.js +49 -0
- package/dist/auto-reply/tokens.js +2 -0
- package/dist/auto-reply/tool-meta.js +74 -0
- package/dist/auto-reply/transcription.js +57 -0
- package/dist/auto-reply/types.js +1 -0
- package/dist/browser/bridge-server.js +37 -0
- package/dist/browser/cdp.js +382 -0
- package/dist/browser/chrome.js +432 -0
- package/dist/browser/client-actions-core.js +67 -0
- package/dist/browser/client-actions-observe.js +24 -0
- package/dist/browser/client-actions-types.js +1 -0
- package/dist/browser/client-actions.js +3 -0
- package/dist/browser/client-fetch.js +43 -0
- package/dist/browser/client.js +105 -0
- package/dist/browser/config.js +155 -0
- package/dist/browser/constants.js +5 -0
- package/dist/browser/profiles-service.js +124 -0
- package/dist/browser/profiles.js +96 -0
- package/dist/browser/pw-ai.js +2 -0
- package/dist/browser/pw-session.js +144 -0
- package/dist/browser/pw-tools-core.js +363 -0
- package/dist/browser/routes/agent.js +535 -0
- package/dist/browser/routes/basic.js +155 -0
- package/dist/browser/routes/index.js +8 -0
- package/dist/browser/routes/tabs.js +105 -0
- package/dist/browser/routes/utils.js +62 -0
- package/dist/browser/screenshot.js +40 -0
- package/dist/browser/server-context.js +377 -0
- package/dist/browser/server.js +81 -0
- package/dist/browser/target-id.js +18 -0
- package/dist/browser/trash.js +21 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
- package/dist/canvas-host/a2ui/index.html +246 -0
- package/dist/canvas-host/a2ui.js +187 -0
- package/dist/canvas-host/server.js +382 -0
- package/dist/channel-web.js +8 -0
- package/dist/cli/browser-cli-actions-input.js +459 -0
- package/dist/cli/browser-cli-actions-observe.js +56 -0
- package/dist/cli/browser-cli-examples.js +31 -0
- package/dist/cli/browser-cli-inspect.js +97 -0
- package/dist/cli/browser-cli-manage.js +286 -0
- package/dist/cli/browser-cli-shared.js +1 -0
- package/dist/cli/browser-cli.js +26 -0
- package/dist/cli/canvas-cli.js +416 -0
- package/dist/cli/cloud-cli.js +336 -0
- package/dist/cli/credential-cli.js +227 -0
- package/dist/cli/cron-cli.js +454 -0
- package/dist/cli/deps.js +17 -0
- package/dist/cli/dns-cli.js +180 -0
- package/dist/cli/gateway-cli.js +665 -0
- package/dist/cli/gateway-rpc.js +20 -0
- package/dist/cli/hooks-cli.js +135 -0
- package/dist/cli/memory-cli.js +101 -0
- package/dist/cli/models-cli.js +248 -0
- package/dist/cli/nodes-camera.js +57 -0
- package/dist/cli/nodes-canvas.js +26 -0
- package/dist/cli/nodes-cli.js +946 -0
- package/dist/cli/nodes-screen.js +37 -0
- package/dist/cli/pairing-cli.js +100 -0
- package/dist/cli/parse-duration.js +20 -0
- package/dist/cli/plugins-cli.js +158 -0
- package/dist/cli/ports.js +97 -0
- package/dist/cli/profile.js +81 -0
- package/dist/cli/program.js +162 -0
- package/dist/cli/prompt.js +19 -0
- package/dist/cli/run-main.js +48 -0
- package/dist/cli/skills-cli.js +132 -0
- package/dist/cli/skills-hub-cli.js +1093 -0
- package/dist/cli/telegram-cli.js +56 -0
- package/dist/cli/tool-connector-cli.js +118 -0
- package/dist/cli/tui-cli.js +35 -0
- package/dist/cli/upstream-sync-cli.js +2833 -0
- package/dist/cli/usage-cli.js +24 -0
- package/dist/cli/wait.js +8 -0
- package/dist/commands/agent-via-gateway.js +115 -0
- package/dist/commands/agent.js +665 -0
- package/dist/commands/antigravity-oauth.js +327 -0
- package/dist/commands/auth-choice-options.js +80 -0
- package/dist/commands/auth-choice.js +134 -0
- package/dist/commands/auth-token.js +31 -0
- package/dist/commands/bootstrap-preset.js +214 -0
- package/dist/commands/capabilities.js +36 -0
- package/dist/commands/chutes-oauth.js +144 -0
- package/dist/commands/claude-md.js +137 -0
- package/dist/commands/config-view.js +11 -0
- package/dist/commands/configure.js +648 -0
- package/dist/commands/credential.js +236 -0
- package/dist/commands/cursor-rules.js +230 -0
- package/dist/commands/doctor-state-migrations.js +358 -0
- package/dist/commands/doctor-ui.js +113 -0
- package/dist/commands/doctor.js +673 -0
- package/dist/commands/health.js +112 -0
- package/dist/commands/identity.js +54 -0
- package/dist/commands/init.js +167 -0
- package/dist/commands/models/aliases.js +85 -0
- package/dist/commands/models/fallbacks.js +123 -0
- package/dist/commands/models/image-fallbacks.js +123 -0
- package/dist/commands/models/list.js +347 -0
- package/dist/commands/models/scan.js +271 -0
- package/dist/commands/models/set-image.js +27 -0
- package/dist/commands/models/set.js +27 -0
- package/dist/commands/models/shared.js +73 -0
- package/dist/commands/models.js +7 -0
- package/dist/commands/onboard-auth.js +101 -0
- package/dist/commands/onboard-channels.js +814 -0
- package/dist/commands/onboard-eve-identity.js +98 -0
- package/dist/commands/onboard-github.js +153 -0
- package/dist/commands/onboard-helpers.js +303 -0
- package/dist/commands/onboard-interactive.js +17 -0
- package/dist/commands/onboard-non-interactive.js +228 -0
- package/dist/commands/onboard-providers.js +829 -0
- package/dist/commands/onboard-quickstart.js +185 -0
- package/dist/commands/onboard-remote.js +120 -0
- package/dist/commands/onboard-skills.js +148 -0
- package/dist/commands/onboard-types.js +1 -0
- package/dist/commands/onboard.js +19 -0
- package/dist/commands/openai-codex-model-default.js +38 -0
- package/dist/commands/poll.js +64 -0
- package/dist/commands/quest.js +27 -0
- package/dist/commands/reset.js +61 -0
- package/dist/commands/send.js +124 -0
- package/dist/commands/sessions-ingest.js +359 -0
- package/dist/commands/sessions.js +212 -0
- package/dist/commands/setup.js +59 -0
- package/dist/commands/signal-install.js +135 -0
- package/dist/commands/skills-manifest.js +235 -0
- package/dist/commands/status.js +139 -0
- package/dist/commands/suggestions.js +54 -0
- package/dist/commands/systemd-linger.js +71 -0
- package/dist/commands/update.js +16 -0
- package/dist/commands/usage-upload.js +27 -0
- package/dist/config/config.js +6 -0
- package/dist/config/defaults.js +140 -0
- package/dist/config/group-policy.js +49 -0
- package/dist/config/includes.js +183 -0
- package/dist/config/io.js +188 -0
- package/dist/config/legacy-migrate.js +13 -0
- package/dist/config/legacy.js +425 -0
- package/dist/config/paths.js +82 -0
- package/dist/config/port-defaults.js +32 -0
- package/dist/config/schema.js +173 -0
- package/dist/config/sessions.js +611 -0
- package/dist/config/talk.js +31 -0
- package/dist/config/types.js +1 -0
- package/dist/config/validation.js +29 -0
- package/dist/config/zod-schema.js +1110 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js +2393 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js.map +1 -0
- package/dist/control-ui/assets/index-g06q5Xc3.css +1 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/index.html +16 -0
- package/dist/cron/isolated-agent.js +529 -0
- package/dist/cron/normalize.js +73 -0
- package/dist/cron/parse.js +24 -0
- package/dist/cron/run-log.js +72 -0
- package/dist/cron/schedule.js +24 -0
- package/dist/cron/service.js +471 -0
- package/dist/cron/store.js +43 -0
- package/dist/cron/types.js +1 -0
- package/dist/daemon/constants.js +10 -0
- package/dist/daemon/launchd.js +295 -0
- package/dist/daemon/legacy.js +63 -0
- package/dist/daemon/program-args.js +141 -0
- package/dist/daemon/schtasks.js +269 -0
- package/dist/daemon/service.js +69 -0
- package/dist/daemon/systemd.js +332 -0
- package/dist/discord/index.js +2 -0
- package/dist/discord/monitor.js +1089 -0
- package/dist/discord/probe.js +54 -0
- package/dist/discord/send.js +652 -0
- package/dist/discord/token.js +8 -0
- package/dist/entry.js +16 -0
- package/dist/gateway/auth.js +121 -0
- package/dist/gateway/call.js +103 -0
- package/dist/gateway/chat-attachments.js +41 -0
- package/dist/gateway/client.js +180 -0
- package/dist/gateway/config-reload.js +274 -0
- package/dist/gateway/control-ui.js +184 -0
- package/dist/gateway/hooks-mapping.js +282 -0
- package/dist/gateway/hooks.js +168 -0
- package/dist/gateway/net.js +29 -0
- package/dist/gateway/protocol/index.js +62 -0
- package/dist/gateway/protocol/schema.js +577 -0
- package/dist/gateway/server-bridge-subscriptions.js +93 -0
- package/dist/gateway/server-bridge.js +1066 -0
- package/dist/gateway/server-browser.js +11 -0
- package/dist/gateway/server-channels.js +680 -0
- package/dist/gateway/server-chat.js +159 -0
- package/dist/gateway/server-constants.js +8 -0
- package/dist/gateway/server-discovery.js +62 -0
- package/dist/gateway/server-http.js +165 -0
- package/dist/gateway/server-methods/agent-job.js +114 -0
- package/dist/gateway/server-methods/agent.js +254 -0
- package/dist/gateway/server-methods/channels.js +239 -0
- package/dist/gateway/server-methods/chat.js +207 -0
- package/dist/gateway/server-methods/config.js +50 -0
- package/dist/gateway/server-methods/connect.js +6 -0
- package/dist/gateway/server-methods/cron.js +89 -0
- package/dist/gateway/server-methods/health.js +28 -0
- package/dist/gateway/server-methods/models.js +16 -0
- package/dist/gateway/server-methods/nodes.js +294 -0
- package/dist/gateway/server-methods/providers.js +257 -0
- package/dist/gateway/server-methods/send.js +254 -0
- package/dist/gateway/server-methods/sessions.js +382 -0
- package/dist/gateway/server-methods/skills.js +83 -0
- package/dist/gateway/server-methods/system.js +118 -0
- package/dist/gateway/server-methods/talk.js +22 -0
- package/dist/gateway/server-methods/types.js +1 -0
- package/dist/gateway/server-methods/voicewake.js +30 -0
- package/dist/gateway/server-methods/web.js +81 -0
- package/dist/gateway/server-methods/wizard.js +100 -0
- package/dist/gateway/server-methods.js +53 -0
- package/dist/gateway/server-providers.js +687 -0
- package/dist/gateway/server-shared.js +1 -0
- package/dist/gateway/server-utils.js +35 -0
- package/dist/gateway/server.js +1478 -0
- package/dist/gateway/session-utils.js +355 -0
- package/dist/gateway/ws-log.js +343 -0
- package/dist/gateway/ws-logging.js +8 -0
- package/dist/globals.js +41 -0
- package/dist/hooks/gmail-ops.js +236 -0
- package/dist/hooks/gmail-setup-utils.js +278 -0
- package/dist/hooks/gmail-watcher.js +190 -0
- package/dist/hooks/gmail.js +177 -0
- package/dist/imessage/client.js +165 -0
- package/dist/imessage/index.js +3 -0
- package/dist/imessage/monitor.js +365 -0
- package/dist/imessage/probe.js +26 -0
- package/dist/imessage/send.js +83 -0
- package/dist/imessage/targets.js +176 -0
- package/dist/index.js +55 -0
- package/dist/infra/agent-events.js +46 -0
- package/dist/infra/binaries.js +9 -0
- package/dist/infra/bonjour-discovery.js +163 -0
- package/dist/infra/bonjour.js +200 -0
- package/dist/infra/bridge/server.js +564 -0
- package/dist/infra/canvas-host-url.js +54 -0
- package/dist/infra/channel-summary.js +78 -0
- package/dist/infra/control-ui-assets.js +112 -0
- package/dist/infra/dotenv.js +15 -0
- package/dist/infra/env.js +8 -0
- package/dist/infra/errors.js +28 -0
- package/dist/infra/event-log.js +251 -0
- package/dist/infra/gateway-lock.js +8 -0
- package/dist/infra/git-commit.js +91 -0
- package/dist/infra/heartbeat-events.js +21 -0
- package/dist/infra/heartbeat-runner.js +458 -0
- package/dist/infra/heartbeat-wake.js +61 -0
- package/dist/infra/is-main.js +37 -0
- package/dist/infra/json-file.js +21 -0
- package/dist/infra/machine-name.js +40 -0
- package/dist/infra/nexus-root.js +56 -0
- package/dist/infra/node-pairing.js +212 -0
- package/dist/infra/path-env.js +93 -0
- package/dist/infra/ports.js +87 -0
- package/dist/infra/provider-summary.js +80 -0
- package/dist/infra/provider-usage.auth.js +189 -0
- package/dist/infra/provider-usage.fetch.claude.js +129 -0
- package/dist/infra/provider-usage.fetch.codex.js +62 -0
- package/dist/infra/provider-usage.fetch.copilot.js +42 -0
- package/dist/infra/provider-usage.fetch.gemini.js +57 -0
- package/dist/infra/provider-usage.fetch.js +6 -0
- package/dist/infra/provider-usage.fetch.minimax.js +214 -0
- package/dist/infra/provider-usage.fetch.shared.js +11 -0
- package/dist/infra/provider-usage.fetch.zai.js +62 -0
- package/dist/infra/provider-usage.format.js +77 -0
- package/dist/infra/provider-usage.js +145 -0
- package/dist/infra/provider-usage.load.js +54 -0
- package/dist/infra/provider-usage.shared.js +19 -0
- package/dist/infra/provider-usage.types.js +1 -0
- package/dist/infra/restart.js +29 -0
- package/dist/infra/retry.js +16 -0
- package/dist/infra/runtime-guard.js +59 -0
- package/dist/infra/shell-env.js +88 -0
- package/dist/infra/system-events.js +71 -0
- package/dist/infra/system-presence.js +217 -0
- package/dist/infra/tailnet.js +46 -0
- package/dist/infra/tailscale.js +149 -0
- package/dist/infra/unhandled-rejections.js +19 -0
- package/dist/infra/usage-suggestions.js +241 -0
- package/dist/infra/usage-upload.js +290 -0
- package/dist/infra/voicewake.js +78 -0
- package/dist/infra/widearea-dns.js +123 -0
- package/dist/infra/ws.js +13 -0
- package/dist/logger.js +52 -0
- package/dist/logging.js +506 -0
- package/dist/macos/gateway-daemon.js +145 -0
- package/dist/macos/relay.js +49 -0
- package/dist/media/constants.js +33 -0
- package/dist/media/host.js +42 -0
- package/dist/media/image-ops.js +119 -0
- package/dist/media/mime.js +123 -0
- package/dist/media/parse.js +83 -0
- package/dist/media/server.js +64 -0
- package/dist/media/store.js +139 -0
- package/dist/polls.js +43 -0
- package/dist/process/command-queue.js +97 -0
- package/dist/process/exec.js +75 -0
- package/dist/provider-web.js +8 -0
- package/dist/providers/github-copilot-auth.js +123 -0
- package/dist/providers/github-copilot-models.js +35 -0
- package/dist/providers/github-copilot-token.js +11 -0
- package/dist/providers/location.js +48 -0
- package/dist/providers/web/index.js +2 -0
- package/dist/runtime.js +8 -0
- package/dist/sessions/level-overrides.js +9 -0
- package/dist/sessions/send-policy.js +68 -0
- package/dist/signal/client.js +134 -0
- package/dist/signal/daemon.js +69 -0
- package/dist/signal/index.js +3 -0
- package/dist/signal/monitor.js +411 -0
- package/dist/signal/probe.js +46 -0
- package/dist/signal/send.js +91 -0
- package/dist/slack/actions.js +97 -0
- package/dist/slack/index.js +5 -0
- package/dist/slack/monitor.js +1270 -0
- package/dist/slack/probe.js +47 -0
- package/dist/slack/send.js +131 -0
- package/dist/slack/token.js +10 -0
- package/dist/telegram/allowed-updates.js +8 -0
- package/dist/telegram/bot.js +724 -0
- package/dist/telegram/download.js +34 -0
- package/dist/telegram/index.js +4 -0
- package/dist/telegram/monitor.js +47 -0
- package/dist/telegram/pairing-store.js +77 -0
- package/dist/telegram/probe.js +63 -0
- package/dist/telegram/proxy.js +9 -0
- package/dist/telegram/reaction-level.js +45 -0
- package/dist/telegram/send.js +151 -0
- package/dist/telegram/sent-message-cache.js +65 -0
- package/dist/telegram/token.js +30 -0
- package/dist/telegram/update-offset-store.js +61 -0
- package/dist/telegram/webhook-set.js +12 -0
- package/dist/telegram/webhook.js +56 -0
- package/dist/tui/commands.js +87 -0
- package/dist/tui/components/assistant-message.js +16 -0
- package/dist/tui/components/chat-log.js +92 -0
- package/dist/tui/components/custom-editor.js +55 -0
- package/dist/tui/components/selectors.js +8 -0
- package/dist/tui/components/tool-execution.js +111 -0
- package/dist/tui/components/user-message.js +17 -0
- package/dist/tui/gateway-chat.js +140 -0
- package/dist/tui/theme/theme.js +80 -0
- package/dist/tui/tui.js +708 -0
- package/dist/utils.js +153 -0
- package/dist/version.js +18 -0
- package/dist/web/accounts.js +86 -0
- package/dist/web/active-listener.js +25 -0
- package/dist/web/auto-reply.js +1256 -0
- package/dist/web/inbound.js +649 -0
- package/dist/web/login-qr.js +230 -0
- package/dist/web/login.js +71 -0
- package/dist/web/media.js +175 -0
- package/dist/web/outbound.js +102 -0
- package/dist/web/qr-image.js +97 -0
- package/dist/web/reconnect.js +60 -0
- package/dist/web/session.js +370 -0
- package/dist/wizard/clack-prompter.js +56 -0
- package/dist/wizard/onboarding.js +620 -0
- package/dist/wizard/prompts.js +6 -0
- package/dist/wizard/session.js +203 -0
- package/docs/AGENTS.default.md +116 -0
- package/docs/CAPABILITIES.md +444 -0
- package/docs/CNAME +1 -0
- package/docs/NEXUS_CORE_REWRITE_SPEC.md +226 -0
- package/docs/RELEASING.md +69 -0
- package/docs/_config.yml +53 -0
- package/docs/_layouts/default.html +145 -0
- package/docs/agent-assisted-install.md +95 -0
- package/docs/agent-loop.md +61 -0
- package/docs/agent-send.md +21 -0
- package/docs/agent.md +108 -0
- package/docs/android.md +133 -0
- package/docs/architecture.md +114 -0
- package/docs/assets/markdown.css +133 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/terminal.css +470 -0
- package/docs/assets/theme.js +55 -0
- package/docs/audio.md +48 -0
- package/docs/automation/nexus-sync.md +371 -0
- package/docs/background-process.md +74 -0
- package/docs/bash.md +32 -0
- package/docs/bedrock.md +71 -0
- package/docs/bonjour.md +159 -0
- package/docs/browser-linux-troubleshooting.md +114 -0
- package/docs/browser.md +293 -0
- package/docs/bun.md +56 -0
- package/docs/camera.md +152 -0
- package/docs/clawd.md +212 -0
- package/docs/concepts/usage-tracking.md +29 -0
- package/docs/configuration.md +1666 -0
- package/docs/control-ui.md +83 -0
- package/docs/cron.md +385 -0
- package/docs/dashboard.md +17 -0
- package/docs/device-models.md +46 -0
- package/docs/discord.md +308 -0
- package/docs/discovery.md +112 -0
- package/docs/docker.md +258 -0
- package/docs/docs.json +105 -0
- package/docs/doctor.md +68 -0
- package/docs/elevated.md +31 -0
- package/docs/faq.md +736 -0
- package/docs/feature-inventory/overview.md +141 -0
- package/docs/feature-inventory/rollout-checklist.md +53 -0
- package/docs/feature-inventory/test-matrix.md +87 -0
- package/docs/feature-inventory.md +9 -0
- package/docs/gateway/configuration-examples.md +221 -0
- package/docs/gateway/configuration.md +172 -0
- package/docs/gateway/cron.md +61 -0
- package/docs/gateway/heartbeat.md +207 -0
- package/docs/gateway/pairing.md +109 -0
- package/docs/gateway-lock.md +28 -0
- package/docs/gateway.md +227 -0
- package/docs/gmail-pubsub.md +191 -0
- package/docs/grammy.md +27 -0
- package/docs/group-messages.md +73 -0
- package/docs/groups.md +130 -0
- package/docs/health.md +28 -0
- package/docs/heartbeat.md +73 -0
- package/docs/home-userspace.md +277 -0
- package/docs/hubs.md +148 -0
- package/docs/images.md +51 -0
- package/docs/imessage.md +94 -0
- package/docs/index.md +196 -0
- package/docs/ios.md +372 -0
- package/docs/linux.md +11 -0
- package/docs/location-command.md +95 -0
- package/docs/location.md +46 -0
- package/docs/logging.md +110 -0
- package/docs/lore.md +131 -0
- package/docs/mac/bun.md +133 -0
- package/docs/mac/canvas.md +161 -0
- package/docs/mac/child-process.md +72 -0
- package/docs/mac/dev-setup.md +81 -0
- package/docs/mac/health.md +28 -0
- package/docs/mac/icon.md +26 -0
- package/docs/mac/logging.md +51 -0
- package/docs/mac/menu-bar.md +69 -0
- package/docs/mac/peekaboo.md +170 -0
- package/docs/mac/permissions.md +40 -0
- package/docs/mac/release.md +76 -0
- package/docs/mac/remote.md +57 -0
- package/docs/mac/signing.md +41 -0
- package/docs/mac/skills.md +27 -0
- package/docs/mac/voice-overlay.md +52 -0
- package/docs/mac/voicewake.md +56 -0
- package/docs/mac/webchat.md +27 -0
- package/docs/mac/xpc.md +40 -0
- package/docs/macos.md +104 -0
- package/docs/model-failover.md +75 -0
- package/docs/models.md +91 -0
- package/docs/multi-agent.md +74 -0
- package/docs/nix.md +95 -0
- package/docs/nodes.md +157 -0
- package/docs/onboarding-config-protocol.md +34 -0
- package/docs/onboarding.md +189 -0
- package/docs/pairing.md +85 -0
- package/docs/plans/cron-add-hardening.md +72 -0
- package/docs/plans/group-policy-hardening.md +121 -0
- package/docs/poll.md +52 -0
- package/docs/prereqs.md +67 -0
- package/docs/presence.md +133 -0
- package/docs/proposals/model-config.md +147 -0
- package/docs/provider-routing.md +25 -0
- package/docs/queue.md +78 -0
- package/docs/reference/templates/AGENTS.md +164 -0
- package/docs/remote-gateway-readme.md +153 -0
- package/docs/remote.md +61 -0
- package/docs/research/memory.md +227 -0
- package/docs/rpc.md +35 -0
- package/docs/security.md +200 -0
- package/docs/session-ingestion.md +119 -0
- package/docs/session-tool.md +154 -0
- package/docs/session.md +85 -0
- package/docs/sessions.md +8 -0
- package/docs/setup.md +131 -0
- package/docs/showcase.md +37 -0
- package/docs/signal.md +122 -0
- package/docs/skills-config.md +58 -0
- package/docs/skills.md +153 -0
- package/docs/slack.md +221 -0
- package/docs/subagents.md +72 -0
- package/docs/tailscale.md +71 -0
- package/docs/talk.md +79 -0
- package/docs/telegram.md +96 -0
- package/docs/templates/AGENTS.md +286 -0
- package/docs/templates/BOOTSTRAP.md +35 -0
- package/docs/templates/IDENTITY.md +17 -0
- package/docs/templates/PROFILE.md +14 -0
- package/docs/templates/SOUL.md +41 -0
- package/docs/templates/TOOLS.md +41 -0
- package/docs/templates/USER.md +8 -0
- package/docs/test.md +43 -0
- package/docs/testing-onboarding-quickstart.md +76 -0
- package/docs/testing-philosophy.md +211 -0
- package/docs/thinking.md +46 -0
- package/docs/timezone.md +40 -0
- package/docs/tools.md +346 -0
- package/docs/troubleshooting.md +257 -0
- package/docs/tui.md +71 -0
- package/docs/typebox.md +42 -0
- package/docs/updating.md +138 -0
- package/docs/usage-cloud-aggregation-spec.md +133 -0
- package/docs/usage-suggestions-pipeline.md +126 -0
- package/docs/voicewake.md +61 -0
- package/docs/web.md +115 -0
- package/docs/webchat.md +34 -0
- package/docs/webhook.md +132 -0
- package/docs/whatsapp-clawd.jpg +0 -0
- package/docs/whatsapp.md +170 -0
- package/docs/windows.md +11 -0
- package/docs/wizard.md +167 -0
- package/package.json +209 -0
- package/skills/1password/SKILL.md +54 -0
- package/skills/1password/docs/setup.md +85 -0
- package/skills/1password/docs/troubleshooting.md +63 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/agent-browser/SKILL.md +450 -0
- package/skills/agent-browser/docs/browser-use-eval.md +95 -0
- package/skills/agent-browser/docs/first-tests.md +261 -0
- package/skills/agent-browser/docs/wordle-nyt-eval.js +32 -0
- package/skills/aix/SKILL.md +93 -0
- package/skills/aix/docs/embeddings.md +40 -0
- package/skills/aix/docs/setup.md +58 -0
- package/skills/aix/docs/troubleshooting.md +41 -0
- package/skills/aix/references/sql.md +48 -0
- package/skills/apple-notes/SKILL.md +50 -0
- package/skills/apple-reminders/SKILL.md +67 -0
- package/skills/bear-notes/SKILL.md +79 -0
- package/skills/bird/SKILL.md +32 -0
- package/skills/bird/docs/auth.md +31 -0
- package/skills/bird/docs/troubleshooting.md +31 -0
- package/skills/blogwatcher/SKILL.md +46 -0
- package/skills/blucli/SKILL.md +27 -0
- package/skills/brave-search/SKILL.md +36 -0
- package/skills/brave-search/docs/setup.md +40 -0
- package/skills/brave-search/docs/troubleshooting.md +37 -0
- package/skills/brave-search/docs/usage.md +28 -0
- package/skills/brave-search/scripts/content.mjs +53 -0
- package/skills/brave-search/scripts/search.mjs +79 -0
- package/skills/browser-use-agent-sdk/SKILL.md +90 -0
- package/skills/camsnap/SKILL.md +25 -0
- package/skills/clawdhub/SKILL.md +53 -0
- package/skills/coding-agent/SKILL.md +274 -0
- package/skills/comms/SKILL.md +249 -0
- package/skills/comms/docs/adapters.md +54 -0
- package/skills/comms/docs/setup.md +56 -0
- package/skills/comms/docs/troubleshooting.md +44 -0
- package/skills/comms/references/schema.md +49 -0
- package/skills/computer-use/SKILL.md +204 -0
- package/skills/computer-use/docs/open-interpreter.md +26 -0
- package/skills/computer-use/docs/peekaboo.md +26 -0
- package/skills/computer-use/docs/setup.md +47 -0
- package/skills/computer-use/docs/troubleshooting.md +33 -0
- package/skills/discord/SKILL.md +370 -0
- package/skills/eightctl/SKILL.md +29 -0
- package/skills/eve/SKILL.md +215 -0
- package/skills/eve/docs/dual-account.md +84 -0
- package/skills/eve/docs/intelligence.md +58 -0
- package/skills/eve/docs/setup.md +60 -0
- package/skills/eve/docs/troubleshooting.md +54 -0
- package/skills/eve/scripts/setup-dual-account.sh +125 -0
- package/skills/filesystem/SKILL.md +217 -0
- package/skills/food-order/SKILL.md +41 -0
- package/skills/gemini/SKILL.md +23 -0
- package/skills/gh/SKILL.md +22 -0
- package/skills/gh/docs/usage.md +41 -0
- package/skills/gifgrep/SKILL.md +47 -0
- package/skills/github/SKILL.md +26 -0
- package/skills/github/docs/setup.md +21 -0
- package/skills/github/docs/troubleshooting.md +24 -0
- package/skills/gog/SKILL.md +104 -0
- package/skills/gog/docs/portability.md +94 -0
- package/skills/gog/docs/setup.md +76 -0
- package/skills/gog/docs/troubleshooting.md +94 -0
- package/skills/gog/scripts/cdp/README.md +90 -0
- package/skills/gog/scripts/cdp/add_test_users.py +69 -0
- package/skills/gog/scripts/cdp/auth_add_accounts.py +209 -0
- package/skills/gog/scripts/cdp/auth_add_accounts_manual.py +206 -0
- package/skills/gog/scripts/cdp/create_oauth_client.py +165 -0
- package/skills/gog/scripts/cdp/launch_cdp_chrome.sh +58 -0
- package/skills/google-oauth/SKILL.md +94 -0
- package/skills/goplaces/SKILL.md +30 -0
- package/skills/imsg/SKILL.md +25 -0
- package/skills/json-render/SKILL.md +154 -0
- package/skills/json-render/assets/components/README.md +21 -0
- package/skills/json-render/assets/components/catalog.ts +78 -0
- package/skills/json-render/assets/components/registry.tsx +172 -0
- package/skills/json-render/assets/demo/App.css +397 -0
- package/skills/json-render/assets/demo/App.tsx +897 -0
- package/skills/json-render/assets/demo/README.md +22 -0
- package/skills/json-render/assets/demo/catalog.ts +78 -0
- package/skills/json-render/assets/demo/data/nexus-core.json +31 -0
- package/skills/json-render/assets/demo/index.css +27 -0
- package/skills/json-render/assets/demo/registry.tsx +150 -0
- package/skills/json-render/docs/nexus-state-demo.md +84 -0
- package/skills/json-render/docs/shadcn-preset.md +33 -0
- package/skills/json-render/scripts/create-vite-demo.sh +45 -0
- package/skills/json-render/scripts/llm-server/README.md +33 -0
- package/skills/json-render/scripts/llm-server/catalog.ts +78 -0
- package/skills/json-render/scripts/llm-server/package-lock.json +702 -0
- package/skills/json-render/scripts/llm-server/package.json +18 -0
- package/skills/json-render/scripts/llm-server/server.ts +285 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +91 -0
- package/skills/local-places/pyproject.toml +27 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +38 -0
- package/skills/model-usage/SKILL.md +45 -0
- package/skills/model-usage/references/codexbar-cli.md +28 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/nano-banana-pro/SKILL.md +30 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
- package/skills/nano-pdf/SKILL.md +20 -0
- package/skills/nexus-cloud/SKILL.md +53 -0
- package/skills/nexus-cloud/docs/security.md +24 -0
- package/skills/nexus-cloud/docs/setup.md +51 -0
- package/skills/nexus-cloud/docs/troubleshooting.md +28 -0
- package/skills/notion/SKILL.md +156 -0
- package/skills/obsidian/SKILL.md +55 -0
- package/skills/onboarding/SKILL.md +515 -0
- package/skills/onboarding/docs/CAPABILITIES.md +444 -0
- package/skills/onboarding/docs/CAPABILITY_TAXONOMY.md +608 -0
- package/skills/onboarding/docs/CLI_GRAMMAR.md +797 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_CREDENTIALS.md +632 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_ONBOARDING.md +815 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_SKILLS.md +449 -0
- package/skills/onboarding/docs/DOCUMENTATION_OVERVIEW.md +290 -0
- package/skills/onboarding/docs/ENTITY_MODEL.md +582 -0
- package/skills/onboarding/docs/GOAL_STATE_ARCHITECTURE.md +395 -0
- package/skills/onboarding/docs/NEXUS_SYSTEM_OVERVIEW.md +476 -0
- package/skills/onboarding/docs/SKILLS_HUB_SPEC.md +477 -0
- package/skills/onboarding/docs/SKILLS_SPECIFICATION.md +947 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_DESIGN.md +702 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_PRD.md +278 -0
- package/skills/onboarding/docs/SKILL_INVENTORY.md +266 -0
- package/skills/onboarding/docs/STATE_ARCHITECTURE.md +547 -0
- package/skills/onboarding/docs/TROUBLESHOOTING.md +363 -0
- package/skills/onboarding/docs/USER_JOURNEY.md +797 -0
- package/skills/onboarding/docs/WOW_MOMENTS.md +232 -0
- package/skills/onboarding/docs/agent-apple-id.md +289 -0
- package/skills/onboarding/docs/skill-deep-dives/1password.md +367 -0
- package/skills/onboarding/docs/skill-deep-dives/TEMPLATE.md +197 -0
- package/skills/onboarding/docs/skill-deep-dives/aix.md +498 -0
- package/skills/onboarding/docs/skill-deep-dives/bird.md +357 -0
- package/skills/onboarding/docs/skill-deep-dives/brave-search.md +601 -0
- package/skills/onboarding/docs/skill-deep-dives/comms.md +607 -0
- package/skills/onboarding/docs/skill-deep-dives/computer-use.md +599 -0
- package/skills/onboarding/docs/skill-deep-dives/cron-and-heartbeat.md +576 -0
- package/skills/onboarding/docs/skill-deep-dives/eve.md +711 -0
- package/skills/onboarding/docs/skill-deep-dives/github.md +333 -0
- package/skills/onboarding/docs/skill-deep-dives/gog.md +640 -0
- package/skills/onboarding/docs/skill-deep-dives/homebrew-prereqs.md +785 -0
- package/skills/onboarding/docs/skill-deep-dives/nexus-cloud.md +689 -0
- package/skills/onboarding/docs/skill-deep-dives/qmd.md +742 -0
- package/skills/onboarding/docs/skill-deep-dives/telegram.md +379 -0
- package/skills/onboarding/docs/skill-deep-dives/wacli.md +399 -0
- package/skills/onboarding/docs/skill-deep-dives/weather.md +513 -0
- package/skills/onboarding/scripts/ralph/prd.json +215 -0
- package/skills/onboarding/scripts/ralph/progress.txt +99 -0
- package/skills/onboarding/scripts/ralph/prompt.md +87 -0
- package/skills/onboarding/scripts/ralph/ralph.log +84 -0
- package/skills/onboarding/scripts/ralph/ralph.sh +45 -0
- package/skills/onboarding/scripts/setup-cursor-skills.sh +40 -0
- package/skills/openai-image-gen/SKILL.md +31 -0
- package/skills/openai-image-gen/scripts/gen.py +173 -0
- package/skills/openai-whisper/SKILL.md +19 -0
- package/skills/openai-whisper-api/SKILL.md +43 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +30 -0
- package/skills/oracle/SKILL.md +105 -0
- package/skills/ordercli/SKILL.md +47 -0
- package/skills/peekaboo/SKILL.md +153 -0
- package/skills/qmd/SKILL.md +32 -0
- package/skills/qmd/docs/mcp.md +30 -0
- package/skills/qmd/docs/ollama.md +42 -0
- package/skills/qmd/docs/setup.md +44 -0
- package/skills/sag/SKILL.md +62 -0
- package/skills/skill-cli-template/SKILL.md +109 -0
- package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +29 -0
- package/skills/sonoscli/SKILL.md +26 -0
- package/skills/spotify-player/SKILL.md +34 -0
- package/skills/summarize/SKILL.md +49 -0
- package/skills/telegram/SKILL.md +20 -0
- package/skills/telegram/docs/pairing.md +30 -0
- package/skills/telegram/docs/setup.md +41 -0
- package/skills/telegram/docs/webhook.md +17 -0
- package/skills/things-mac/SKILL.md +61 -0
- package/skills/tmux/SKILL.md +121 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +84 -0
- package/skills/upstream-sync/SKILL.md +151 -0
- package/skills/upstream-sync/scripts/auto-port.sh +227 -0
- package/skills/upstream-sync/scripts/check-all.sh +88 -0
- package/skills/upstream-sync/scripts/check-nexus.sh +146 -0
- package/skills/upstream-sync/scripts/check-pi-ai.sh +129 -0
- package/skills/video-frames/SKILL.md +29 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/wacli/SKILL.md +48 -0
- package/skills/wacli/docs/auth.md +21 -0
- package/skills/wacli/docs/backup.md +9 -0
- package/skills/wacli/docs/troubleshooting.md +21 -0
- package/skills/weather/SKILL.md +53 -0
- package/skills/weather/docs/usage.md +40 -0
|
@@ -0,0 +1,601 @@
|
|
|
1
|
+
# Skill Deep-Dive: brave-search
|
|
2
|
+
|
|
3
|
+
**Skill**: `brave-search`
|
|
4
|
+
**Category**: Free (Web Search & Content Extraction)
|
|
5
|
+
**Setup Difficulty**: 🟢 Easy
|
|
6
|
+
**Time Estimate**: ~5 minutes
|
|
7
|
+
**Platform**: Cross-platform (macOS, Windows, Linux)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What It Enables
|
|
12
|
+
|
|
13
|
+
| Capability | Description | Example |
|
|
14
|
+
|------------|-------------|---------|
|
|
15
|
+
| Web search | Search the web programmatically | `node search.mjs "Anthropic Claude"` |
|
|
16
|
+
| Content extraction | Extract article text from URLs | `node content.mjs "https://example.com/article"` |
|
|
17
|
+
| Headless operation | No browser required | Pure API calls |
|
|
18
|
+
| Result customization | Control number of results | `node search.mjs "query" -n 10` |
|
|
19
|
+
| Combined search+content | Search and extract in one step | `node search.mjs "query" --content` |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### Hard Dependencies (Required)
|
|
26
|
+
- [ ] `node` + `npm` — For running JavaScript scripts
|
|
27
|
+
- [ ] `BRAVE_API_KEY` — Free API key from Brave Search
|
|
28
|
+
- [ ] Internet connection — For API calls
|
|
29
|
+
|
|
30
|
+
### Soft Dependencies (Recommended)
|
|
31
|
+
- [ ] `1password` skill — For storing API key securely
|
|
32
|
+
- [ ] `jq` — For parsing JSON output (optional)
|
|
33
|
+
|
|
34
|
+
### This Skill Enables
|
|
35
|
+
- [ ] Agent web access — Agent can search and read web content
|
|
36
|
+
- [ ] Research automation — Gather information from multiple sources
|
|
37
|
+
- [ ] Content summarization — Extract and analyze articles
|
|
38
|
+
- [ ] Fact checking — Verify information from web sources
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
### Prerequisites Check
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Check for Node.js
|
|
48
|
+
which node && node --version || echo "❌ Need Node.js"
|
|
49
|
+
|
|
50
|
+
# Check for npm
|
|
51
|
+
which npm && npm --version || echo "❌ Need npm"
|
|
52
|
+
|
|
53
|
+
# Check for API key
|
|
54
|
+
echo $BRAVE_API_KEY | grep -q . && echo "✅ API key set" || echo "⚠️ Need BRAVE_API_KEY"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Installation Steps
|
|
58
|
+
|
|
59
|
+
#### Step 1: Get Brave Search API Key
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# 1. Visit: https://brave.com/search/api/
|
|
63
|
+
# 2. Sign up for free account (2,000 queries/month free)
|
|
64
|
+
# 3. Create API key
|
|
65
|
+
|
|
66
|
+
# Store in 1Password
|
|
67
|
+
op item create \
|
|
68
|
+
--category "API Credential" \
|
|
69
|
+
--title "Brave Search API Key" \
|
|
70
|
+
--vault Personal \
|
|
71
|
+
"credential[password]=YOUR_API_KEY_HERE"
|
|
72
|
+
|
|
73
|
+
# Add to shell profile
|
|
74
|
+
echo 'export BRAVE_API_KEY="op://Personal/Brave Search API Key/credential"' >> ~/.zshrc
|
|
75
|
+
echo 'eval "$(op plugin run -- zsh)"' >> ~/.zshrc
|
|
76
|
+
source ~/.zshrc
|
|
77
|
+
|
|
78
|
+
# Or set directly (not recommended)
|
|
79
|
+
export BRAVE_API_KEY="your-key-here"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### Step 2: Verify Scripts are Available
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Navigate to brave-search skill directory
|
|
86
|
+
cd ~/nexus/skills/brave-search
|
|
87
|
+
|
|
88
|
+
# List scripts
|
|
89
|
+
ls scripts/
|
|
90
|
+
# Should show: search.mjs, content.mjs
|
|
91
|
+
|
|
92
|
+
# Make sure they're executable
|
|
93
|
+
chmod +x scripts/*.mjs
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Verification
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Check API key is set
|
|
100
|
+
echo $BRAVE_API_KEY | grep -q . && echo "✅ API key set"
|
|
101
|
+
|
|
102
|
+
# Test search
|
|
103
|
+
cd ~/nexus/skills/brave-search
|
|
104
|
+
node scripts/search.mjs "test query" -n 3
|
|
105
|
+
|
|
106
|
+
# Test content extraction
|
|
107
|
+
node scripts/content.mjs "https://example.com"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Configuration
|
|
113
|
+
|
|
114
|
+
### Required: Set API Key
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Option 1: Via 1Password (recommended)
|
|
118
|
+
export BRAVE_API_KEY="op://Personal/Brave Search API Key/credential"
|
|
119
|
+
eval "$(op plugin run -- zsh)"
|
|
120
|
+
|
|
121
|
+
# Option 2: Direct export (less secure)
|
|
122
|
+
export BRAVE_API_KEY="your-key-here"
|
|
123
|
+
|
|
124
|
+
# Option 3: Add to .env file (if skill supports it)
|
|
125
|
+
echo "BRAVE_API_KEY=your-key-here" >> ~/nexus/skills/brave-search/.env
|
|
126
|
+
|
|
127
|
+
# Verify
|
|
128
|
+
echo $BRAVE_API_KEY
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Optional: Create Aliases
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Add to ~/.zshrc or ~/.bashrc
|
|
135
|
+
alias brave-search='node ~/nexus/skills/brave-search/scripts/search.mjs'
|
|
136
|
+
alias brave-content='node ~/nexus/skills/brave-search/scripts/content.mjs'
|
|
137
|
+
|
|
138
|
+
# Usage:
|
|
139
|
+
brave-search "Anthropic Claude"
|
|
140
|
+
brave-content "https://example.com/article"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## User Actions Required
|
|
146
|
+
|
|
147
|
+
1. **Create Brave Search account**: Visit brave.com/search/api and sign up (free)
|
|
148
|
+
2. **Generate API key**: Create API key in Brave Search dashboard
|
|
149
|
+
3. **Store API key**: Save in 1Password or environment variable
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Common Failure Points
|
|
154
|
+
|
|
155
|
+
### Failure: "BRAVE_API_KEY not set"
|
|
156
|
+
|
|
157
|
+
**Symptom**: Scripts fail with "API key required" error
|
|
158
|
+
|
|
159
|
+
**Cause**: Environment variable not set
|
|
160
|
+
|
|
161
|
+
**Recovery**:
|
|
162
|
+
```bash
|
|
163
|
+
# Check if key is set
|
|
164
|
+
echo $BRAVE_API_KEY
|
|
165
|
+
|
|
166
|
+
# If empty, set it
|
|
167
|
+
export BRAVE_API_KEY="your-key-here"
|
|
168
|
+
|
|
169
|
+
# Or load from 1Password
|
|
170
|
+
export BRAVE_API_KEY=$(op read "op://Personal/Brave Search API Key/credential")
|
|
171
|
+
|
|
172
|
+
# Verify
|
|
173
|
+
echo $BRAVE_API_KEY
|
|
174
|
+
|
|
175
|
+
# Add to shell profile for persistence
|
|
176
|
+
echo 'export BRAVE_API_KEY=$(op read "op://Personal/Brave Search API Key/credential")' >> ~/.zshrc
|
|
177
|
+
source ~/.zshrc
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Prevention**: Set API key before using skill
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Failure: "API rate limit exceeded"
|
|
185
|
+
|
|
186
|
+
**Symptom**: API returns 429 Too Many Requests error
|
|
187
|
+
|
|
188
|
+
**Cause**: Exceeded free tier limit (2,000 queries/month)
|
|
189
|
+
|
|
190
|
+
**Recovery**:
|
|
191
|
+
```bash
|
|
192
|
+
# Check your usage at: https://brave.com/search/api/dashboard
|
|
193
|
+
|
|
194
|
+
# Options:
|
|
195
|
+
# 1. Wait for monthly reset
|
|
196
|
+
# 2. Upgrade to paid plan
|
|
197
|
+
# 3. Use caching to reduce API calls
|
|
198
|
+
|
|
199
|
+
# Implement simple cache
|
|
200
|
+
CACHE_FILE="/tmp/brave-search-$(echo "$QUERY" | md5).json"
|
|
201
|
+
if [ -f "$CACHE_FILE" ] && [ $(find "$CACHE_FILE" -mmin -60) ]; then
|
|
202
|
+
cat "$CACHE_FILE"
|
|
203
|
+
else
|
|
204
|
+
node search.mjs "$QUERY" | tee "$CACHE_FILE"
|
|
205
|
+
fi
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Prevention**: Monitor usage, implement caching, avoid redundant queries
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### Failure: Content extraction returns empty/incomplete
|
|
213
|
+
|
|
214
|
+
**Symptom**: `content.mjs` returns little or no text from URL
|
|
215
|
+
|
|
216
|
+
**Cause**: Website is heavily JavaScript-based or blocks extraction
|
|
217
|
+
|
|
218
|
+
**Recovery**:
|
|
219
|
+
```bash
|
|
220
|
+
# Brave Search content extraction is best-effort
|
|
221
|
+
# For JavaScript-heavy sites, use alternative methods:
|
|
222
|
+
|
|
223
|
+
# Option 1: Use summarize skill with Firecrawl fallback
|
|
224
|
+
# nexus run summarize "https://example.com"
|
|
225
|
+
|
|
226
|
+
# Option 2: Use computer-use skill with browser automation
|
|
227
|
+
# interpreter "Navigate to URL and extract content"
|
|
228
|
+
|
|
229
|
+
# Option 3: Try different extraction tool (jina, trafilatura, etc.)
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Prevention**: Test extraction on target sites before relying on it
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### Failure: "Cannot find module" error
|
|
237
|
+
|
|
238
|
+
**Symptom**: Node.js can't find script or dependencies
|
|
239
|
+
|
|
240
|
+
**Cause**: Wrong working directory or missing dependencies
|
|
241
|
+
|
|
242
|
+
**Recovery**:
|
|
243
|
+
```bash
|
|
244
|
+
# Navigate to skill directory
|
|
245
|
+
cd ~/nexus/skills/brave-search
|
|
246
|
+
|
|
247
|
+
# Check if scripts exist
|
|
248
|
+
ls scripts/search.mjs scripts/content.mjs
|
|
249
|
+
|
|
250
|
+
# Install dependencies if package.json exists
|
|
251
|
+
if [ -f package.json ]; then
|
|
252
|
+
npm install
|
|
253
|
+
fi
|
|
254
|
+
|
|
255
|
+
# Try again
|
|
256
|
+
node scripts/search.mjs "test query"
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Prevention**: Always run scripts from skill directory or use absolute paths
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Automation Opportunities
|
|
264
|
+
|
|
265
|
+
| Step | Automatable? | Tool | Notes |
|
|
266
|
+
|------|--------------|------|-------|
|
|
267
|
+
| Get API key | ❌ No | - | Requires account creation |
|
|
268
|
+
| Store API key | ✅ Yes | bash | 1Password integration |
|
|
269
|
+
| Web search | ✅ Yes | bash | `node search.mjs "query"` |
|
|
270
|
+
| Content extraction | ✅ Yes | bash | `node content.mjs "url"` |
|
|
271
|
+
| Parse results | ✅ Yes | bash | Use `jq` for JSON parsing |
|
|
272
|
+
| Cache results | ✅ Yes | bash | Store in /tmp with timestamp |
|
|
273
|
+
|
|
274
|
+
### Automation Script: Research Assistant
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
#!/bin/bash
|
|
278
|
+
# Research a topic: search + extract top results
|
|
279
|
+
|
|
280
|
+
QUERY="$1"
|
|
281
|
+
NUM_RESULTS="${2:-5}"
|
|
282
|
+
|
|
283
|
+
if [ -z "$QUERY" ]; then
|
|
284
|
+
echo "Usage: $0 'search query' [num_results]"
|
|
285
|
+
exit 1
|
|
286
|
+
fi
|
|
287
|
+
|
|
288
|
+
echo "🔍 Searching for: $QUERY"
|
|
289
|
+
echo ""
|
|
290
|
+
|
|
291
|
+
cd ~/nexus/skills/brave-search
|
|
292
|
+
|
|
293
|
+
# Search and get URLs
|
|
294
|
+
RESULTS=$(node scripts/search.mjs "$QUERY" -n "$NUM_RESULTS" 2>/dev/null)
|
|
295
|
+
|
|
296
|
+
# Extract and display URLs
|
|
297
|
+
echo "$RESULTS" | jq -r '.web.results[].url' | while read -r URL; do
|
|
298
|
+
echo "📄 Extracting: $URL"
|
|
299
|
+
node scripts/content.mjs "$URL" 2>/dev/null | head -20
|
|
300
|
+
echo ""
|
|
301
|
+
echo "---"
|
|
302
|
+
echo ""
|
|
303
|
+
done
|
|
304
|
+
|
|
305
|
+
echo "✅ Research complete!"
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Caching Wrapper
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
#!/bin/bash
|
|
312
|
+
# Cache Brave Search results to avoid rate limits
|
|
313
|
+
|
|
314
|
+
CACHE_DIR="/tmp/brave-search-cache"
|
|
315
|
+
mkdir -p "$CACHE_DIR"
|
|
316
|
+
|
|
317
|
+
QUERY="$1"
|
|
318
|
+
CACHE_KEY=$(echo "$QUERY" | md5)
|
|
319
|
+
CACHE_FILE="$CACHE_DIR/$CACHE_KEY.json"
|
|
320
|
+
CACHE_AGE=3600 # 1 hour
|
|
321
|
+
|
|
322
|
+
if [ -f "$CACHE_FILE" ] && [ $(( $(date +%s) - $(stat -f %m "$CACHE_FILE") )) -lt $CACHE_AGE ]; then
|
|
323
|
+
echo "🗂️ Using cached results"
|
|
324
|
+
cat "$CACHE_FILE"
|
|
325
|
+
else
|
|
326
|
+
echo "🔍 Fetching fresh results"
|
|
327
|
+
cd ~/nexus/skills/brave-search
|
|
328
|
+
node scripts/search.mjs "$QUERY" | tee "$CACHE_FILE"
|
|
329
|
+
fi
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Wow Moments
|
|
335
|
+
|
|
336
|
+
| Moment | What Happens | When to Demo |
|
|
337
|
+
|--------|--------------|--------------|
|
|
338
|
+
| Instant web access | Agent searches web without browser | When user asks about current events |
|
|
339
|
+
| Content extraction | Pure text from articles, no ads/clutter | When demonstrating research capabilities |
|
|
340
|
+
| Structured results | JSON output for programmatic use | When showing automation potential |
|
|
341
|
+
| No browser overhead | Fast results, no browser startup time | Comparing to manual browsing |
|
|
342
|
+
| API-based research | Gather info from 10+ sources in seconds | Research automation use case |
|
|
343
|
+
|
|
344
|
+
### Demo Script
|
|
345
|
+
|
|
346
|
+
```
|
|
347
|
+
Agent: "Let me show you how I can search the web and extract content. I'll research a topic for you:"
|
|
348
|
+
|
|
349
|
+
cd ~/nexus/skills/brave-search
|
|
350
|
+
node scripts/search.mjs "Anthropic Claude API" -n 5
|
|
351
|
+
|
|
352
|
+
Agent: "I found several relevant results. Now let me extract the content from the top article:"
|
|
353
|
+
|
|
354
|
+
# Get first URL from results
|
|
355
|
+
URL=$(node scripts/search.mjs "Anthropic Claude API" -n 1 | jq -r '.web.results[0].url')
|
|
356
|
+
node scripts/content.mjs "$URL"
|
|
357
|
+
|
|
358
|
+
Agent: "Notice how I extracted the pure article text without ads or navigation? This lets me read and analyze content programmatically."
|
|
359
|
+
|
|
360
|
+
Agent: "And the best part - all of this happens headlessly, no browser required. I can research multiple topics simultaneously."
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## Usage Examples
|
|
366
|
+
|
|
367
|
+
### Basic Search
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
# Simple search
|
|
371
|
+
cd ~/nexus/skills/brave-search
|
|
372
|
+
node scripts/search.mjs "Anthropic Claude"
|
|
373
|
+
|
|
374
|
+
# Limit results
|
|
375
|
+
node scripts/search.mjs "machine learning" -n 10
|
|
376
|
+
|
|
377
|
+
# Search with content extraction
|
|
378
|
+
node scripts/search.mjs "climate change" --content
|
|
379
|
+
|
|
380
|
+
# Combine: search 3 results and extract content
|
|
381
|
+
node scripts/search.mjs "quantum computing" -n 3 --content
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
### Content Extraction
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
# Extract article content
|
|
388
|
+
node scripts/content.mjs "https://example.com/article"
|
|
389
|
+
|
|
390
|
+
# Save to file
|
|
391
|
+
node scripts/content.mjs "https://example.com/article" > article.txt
|
|
392
|
+
|
|
393
|
+
# Extract multiple URLs
|
|
394
|
+
for url in "url1" "url2" "url3"; do
|
|
395
|
+
node scripts/content.mjs "$url" > "$(echo $url | md5).txt"
|
|
396
|
+
done
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Parsing Results with jq
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
# Search and extract just URLs
|
|
403
|
+
node scripts/search.mjs "topic" | jq -r '.web.results[].url'
|
|
404
|
+
|
|
405
|
+
# Get titles and URLs
|
|
406
|
+
node scripts/search.mjs "topic" | jq -r '.web.results[] | "\(.title): \(.url)"'
|
|
407
|
+
|
|
408
|
+
# Get just descriptions
|
|
409
|
+
node scripts/search.mjs "topic" | jq -r '.web.results[].description'
|
|
410
|
+
|
|
411
|
+
# Count results
|
|
412
|
+
node scripts/search.mjs "topic" | jq '.web.results | length'
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Integration with Other Skills
|
|
418
|
+
|
|
419
|
+
| Skill | Integration | Notes |
|
|
420
|
+
|-------|-------------|-------|
|
|
421
|
+
| **1password** | Store API key | Secure credential management |
|
|
422
|
+
| **qmd** | Index extracted content | Search web results semantically |
|
|
423
|
+
| **summarize** | Summarize extracted content | Fallback: Use Firecrawl for JS sites |
|
|
424
|
+
| **aix** | Provide web context to AI | AI can research before answering |
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## Testing Checklist
|
|
429
|
+
|
|
430
|
+
- [ ] API key obtained from Brave Search
|
|
431
|
+
- [ ] API key stored in 1Password
|
|
432
|
+
- [ ] Environment variable set: `echo $BRAVE_API_KEY`
|
|
433
|
+
- [ ] Scripts exist: `ls ~/nexus/skills/brave-search/scripts/`
|
|
434
|
+
- [ ] Basic search works: `node search.mjs "test" -n 3`
|
|
435
|
+
- [ ] Content extraction works: `node content.mjs "https://example.com"`
|
|
436
|
+
- [ ] Search with content: `node search.mjs "test" --content`
|
|
437
|
+
- [ ] JSON parsing: `node search.mjs "test" | jq`
|
|
438
|
+
- [ ] Rate limit check: Verify usage on dashboard
|
|
439
|
+
- [ ] Caching: Test cache wrapper script
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## Notes for Onboarding Agent
|
|
444
|
+
|
|
445
|
+
- **API key required**: Always check if user has Brave Search API key
|
|
446
|
+
- **Free tier**: Emphasize 2,000 queries/month free (generous for most users)
|
|
447
|
+
- **When to recommend**:
|
|
448
|
+
- User wants agent to access current web information
|
|
449
|
+
- User needs content extraction for research
|
|
450
|
+
- User wants headless web search (no browser)
|
|
451
|
+
- User does automated research workflows
|
|
452
|
+
- **When NOT to recommend**:
|
|
453
|
+
- User doesn't need web search capabilities
|
|
454
|
+
- User prefers WebSearch built-in tool (if available)
|
|
455
|
+
- User uncomfortable with third-party API
|
|
456
|
+
- **Value proposition**: "Give your agent web access without opening a browser"
|
|
457
|
+
- **Time estimate**: 5 minutes (including API key setup)
|
|
458
|
+
- **Content extraction limitations**: Best for article sites; struggles with JS-heavy apps
|
|
459
|
+
- **Alternative tools**:
|
|
460
|
+
- WebSearch: Built-in tool (if available)
|
|
461
|
+
- computer-use: For JS-heavy sites
|
|
462
|
+
- summarize skill: Has Firecrawl fallback
|
|
463
|
+
- **Cost awareness**: Free tier sufficient for most users; monitor usage
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
## API Response Structure
|
|
468
|
+
|
|
469
|
+
### Search Response
|
|
470
|
+
|
|
471
|
+
```json
|
|
472
|
+
{
|
|
473
|
+
"query": {
|
|
474
|
+
"original": "Anthropic Claude",
|
|
475
|
+
"show_strict_warning": false
|
|
476
|
+
},
|
|
477
|
+
"web": {
|
|
478
|
+
"results": [
|
|
479
|
+
{
|
|
480
|
+
"title": "Claude - Anthropic",
|
|
481
|
+
"url": "https://www.anthropic.com/claude",
|
|
482
|
+
"description": "Claude is a family of AI assistants...",
|
|
483
|
+
"age": "2024-01-15T00:00:00Z",
|
|
484
|
+
"language": "en"
|
|
485
|
+
}
|
|
486
|
+
]
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### Content Extraction Response
|
|
492
|
+
|
|
493
|
+
```
|
|
494
|
+
Title: Article Title
|
|
495
|
+
URL: https://example.com/article
|
|
496
|
+
|
|
497
|
+
Article content text here...
|
|
498
|
+
Multiple paragraphs...
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
## Performance Considerations
|
|
504
|
+
|
|
505
|
+
### Rate Limits
|
|
506
|
+
|
|
507
|
+
- **Free tier**: 2,000 queries/month
|
|
508
|
+
- **Paid tiers**: 5,000 to 50,000+ queries/month
|
|
509
|
+
- **No per-second limits**: Can query rapidly within monthly quota
|
|
510
|
+
|
|
511
|
+
### Caching Strategies
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
# Cache by query hash
|
|
515
|
+
QUERY_HASH=$(echo "$QUERY" | md5)
|
|
516
|
+
CACHE_FILE="/tmp/brave-cache-$QUERY_HASH.json"
|
|
517
|
+
|
|
518
|
+
# Cache for 1 hour
|
|
519
|
+
if [ -f "$CACHE_FILE" ] && [ $(find "$CACHE_FILE" -mmin -60) ]; then
|
|
520
|
+
cat "$CACHE_FILE"
|
|
521
|
+
else
|
|
522
|
+
node search.mjs "$QUERY" | tee "$CACHE_FILE"
|
|
523
|
+
fi
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
### Content Extraction Limitations
|
|
527
|
+
|
|
528
|
+
- **Best for**: News articles, blogs, documentation
|
|
529
|
+
- **Struggles with**: SPAs, JavaScript-heavy sites, streaming content
|
|
530
|
+
- **Fallbacks**: Use computer-use or summarize skill for complex sites
|
|
531
|
+
|
|
532
|
+
---
|
|
533
|
+
|
|
534
|
+
## Advanced: Batch Research
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
#!/bin/bash
|
|
538
|
+
# Research multiple topics in batch
|
|
539
|
+
|
|
540
|
+
TOPICS=(
|
|
541
|
+
"Anthropic Claude API"
|
|
542
|
+
"LangChain documentation"
|
|
543
|
+
"vector databases comparison"
|
|
544
|
+
)
|
|
545
|
+
|
|
546
|
+
for TOPIC in "${TOPICS[@]}"; do
|
|
547
|
+
echo "🔍 Researching: $TOPIC"
|
|
548
|
+
node scripts/search.mjs "$TOPIC" -n 3 --content > "research-$(echo $TOPIC | tr ' ' '_').txt"
|
|
549
|
+
sleep 1 # Be nice to API
|
|
550
|
+
done
|
|
551
|
+
|
|
552
|
+
echo "✅ Batch research complete!"
|
|
553
|
+
ls -lh research-*.txt
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
## Comparison: brave-search vs WebSearch Tool
|
|
559
|
+
|
|
560
|
+
| Feature | brave-search | WebSearch Tool |
|
|
561
|
+
|---------|-------------|----------------|
|
|
562
|
+
| API key required | ✅ Yes | ❌ No |
|
|
563
|
+
| Setup time | 5 minutes | 0 minutes |
|
|
564
|
+
| Content extraction | ✅ Yes | ❌ No |
|
|
565
|
+
| Rate limits | 2,000/month free | Unknown |
|
|
566
|
+
| Programmatic use | ✅ Yes | 🟡 Limited |
|
|
567
|
+
| Offline caching | ✅ Yes | ❌ No |
|
|
568
|
+
| JSON output | ✅ Yes | ❌ No |
|
|
569
|
+
|
|
570
|
+
**When to use brave-search**:
|
|
571
|
+
- Need content extraction
|
|
572
|
+
- Want to cache results
|
|
573
|
+
- Building automation
|
|
574
|
+
- Need structured JSON output
|
|
575
|
+
|
|
576
|
+
**When to use WebSearch tool**:
|
|
577
|
+
- Quick one-off searches
|
|
578
|
+
- No API key setup
|
|
579
|
+
- Built-in to Claude
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
## Security Considerations
|
|
584
|
+
|
|
585
|
+
- **API key**: Treat as sensitive credential (store in 1Password)
|
|
586
|
+
- **Search queries**: Sent to Brave (review privacy policy)
|
|
587
|
+
- **Content extraction**: Brave fetches and parses URLs (not you directly)
|
|
588
|
+
- **No browser fingerprinting**: Pure API, no cookies/tracking
|
|
589
|
+
- **HTTPS**: All API calls encrypted in transit
|
|
590
|
+
|
|
591
|
+
---
|
|
592
|
+
|
|
593
|
+
## Changelog
|
|
594
|
+
|
|
595
|
+
| Date | Change |
|
|
596
|
+
|------|--------|
|
|
597
|
+
| 2026-01-12 | Initial deep-dive created |
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
601
|
+
*Template version: 1.0*
|