@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,632 @@
|
|
|
1
|
+
# CLI Grammar: Credentials
|
|
2
|
+
|
|
3
|
+
> Defines the nexus CLI interface for credential management.
|
|
4
|
+
>
|
|
5
|
+
> **Scope:** This document covers credential storage, retrieval, and account management. Connector setup guides are in CLI_GRAMMAR_SKILLS.md.
|
|
6
|
+
|
|
7
|
+
## Design Principles
|
|
8
|
+
|
|
9
|
+
1. **No plaintext secrets** - Credentials are stored in secure backends (Keychain, 1Password), never in plain files.
|
|
10
|
+
|
|
11
|
+
2. **CLI is the gateway** - All credential operations go through nexus CLI. `index.json` is a cache; CLI rebuilds from the tree.
|
|
12
|
+
|
|
13
|
+
3. **Pointers, not secrets** - Credential files contain metadata + retrieval commands, not actual secrets.
|
|
14
|
+
|
|
15
|
+
4. **Agent-friendly** - Both interactive and non-interactive (flag-based) flows supported.
|
|
16
|
+
|
|
17
|
+
5. **Account = real identifier** - Account names are emails or usernames, not placeholders like "personal".
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Credential File Structure
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
state/credentials/
|
|
25
|
+
├── {service}/
|
|
26
|
+
│ ├── config.json # Shared config (optional, e.g., OAuth client)
|
|
27
|
+
│ └── accounts/
|
|
28
|
+
│ └── {account}/ # Email or username
|
|
29
|
+
│ └── auth/
|
|
30
|
+
│ └── {type}.json # api-key.json, oauth.json, token.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Index is cache-only** — The CLI walks the tree to discover credentials, then writes `index.json` as a cache.
|
|
34
|
+
|
|
35
|
+
### Credential File Schema
|
|
36
|
+
|
|
37
|
+
Each credential file contains metadata and a retrieval command:
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
// state/credentials/anthropic/accounts/tyler@anthropic.com/auth/api-key.json
|
|
41
|
+
{
|
|
42
|
+
"id": "anthropic-tyler@anthropic.com-api-key",
|
|
43
|
+
"type": "api-key",
|
|
44
|
+
"service": "anthropic",
|
|
45
|
+
"account": "tyler@anthropic.com",
|
|
46
|
+
"owner": "user",
|
|
47
|
+
"created": "2026-01-12T10:00:00Z",
|
|
48
|
+
"lastVerified": "2026-01-12T10:00:00Z",
|
|
49
|
+
|
|
50
|
+
"storage": {
|
|
51
|
+
"provider": "keychain",
|
|
52
|
+
"command": "security find-generic-password -s nexus.anthropic.tyler@anthropic.com -a api_key -w"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
For 1Password:
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"storage": {
|
|
61
|
+
"provider": "1password",
|
|
62
|
+
"command": "op read \"op://Nexus/Anthropic API Key/api_key\""
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
For environment variable (nexus doesn't store, just checks):
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"storage": {
|
|
71
|
+
"provider": "env",
|
|
72
|
+
"var": "ANTHROPIC_API_KEY"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
For external command (raw string):
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"storage": {
|
|
81
|
+
"provider": "external",
|
|
82
|
+
"command": "op read \"op://Nexus/Anthropic API Key/api_key\""
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
For external command (JSON output):
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"storage": {
|
|
91
|
+
"provider": "external",
|
|
92
|
+
"command": "security find-generic-password -s \"Claude Code-credentials\" -w",
|
|
93
|
+
"format": "json",
|
|
94
|
+
"jsonPath": "claudeAiOauth.accessToken"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The `command` field must print the secret (raw or JSON). Nexus reads it directly.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Storage Providers
|
|
104
|
+
|
|
105
|
+
| Provider | Platform | Setup Required | Notes |
|
|
106
|
+
|----------|----------|----------------|-------|
|
|
107
|
+
| **keychain** | macOS | None | Uses login keychain, encrypted by OS |
|
|
108
|
+
| **1password** | All | 1Password CLI (`op`) | Full password manager, syncs across devices |
|
|
109
|
+
| **env** | All | Manual | Nexus reads from env var; you set/persist it |
|
|
110
|
+
| **external** | All | Depends | Command that outputs secret (raw or JSON) |
|
|
111
|
+
|
|
112
|
+
**Default:** `keychain` on macOS; otherwise specify `env` or `external`.
|
|
113
|
+
|
|
114
|
+
### macOS Keychain
|
|
115
|
+
|
|
116
|
+
Uses the `security` command to store/retrieve:
|
|
117
|
+
```bash
|
|
118
|
+
# Store
|
|
119
|
+
security add-generic-password -s nexus.anthropic.tyler@anthropic.com -a api_key -w "sk-ant-xxx"
|
|
120
|
+
|
|
121
|
+
# Retrieve
|
|
122
|
+
security find-generic-password -s nexus.anthropic.tyler@anthropic.com -a api_key -w
|
|
123
|
+
|
|
124
|
+
# Delete
|
|
125
|
+
security delete-generic-password -s nexus.anthropic.tyler@anthropic.com -a api_key
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 1Password
|
|
129
|
+
|
|
130
|
+
Uses the `op` CLI:
|
|
131
|
+
```bash
|
|
132
|
+
# Store (create item)
|
|
133
|
+
op item create --category="API Credential" --title="Anthropic API Key" --vault="Nexus" api_key="sk-ant-xxx"
|
|
134
|
+
|
|
135
|
+
# Retrieve
|
|
136
|
+
op read "op://Nexus/Anthropic API Key/api_key"
|
|
137
|
+
|
|
138
|
+
# Delete
|
|
139
|
+
op item delete "Anthropic API Key" --vault="Nexus"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Command Reference
|
|
145
|
+
|
|
146
|
+
### `nexus credential list`
|
|
147
|
+
|
|
148
|
+
List all credentials.
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
nexus credential list # All credentials
|
|
152
|
+
nexus credential list --service google # Filter by service
|
|
153
|
+
nexus credential list --owner user # Filter by owner
|
|
154
|
+
nexus credential list --owner agent:echo # Agent's credentials
|
|
155
|
+
nexus credential list --json # JSON output
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Output:**
|
|
159
|
+
```
|
|
160
|
+
Credentials (5 total)
|
|
161
|
+
|
|
162
|
+
google (2 accounts):
|
|
163
|
+
● tyler@gmail.com (oauth) - owner: user
|
|
164
|
+
● echo@nexus.bot (oauth) - owner: agent:echo
|
|
165
|
+
|
|
166
|
+
anthropic (1 account):
|
|
167
|
+
● tyler@anthropic.com (api-key) - owner: user
|
|
168
|
+
|
|
169
|
+
openai (1 account):
|
|
170
|
+
● tyler@openai.com (api-key) - owner: user
|
|
171
|
+
|
|
172
|
+
brave-search (1 account):
|
|
173
|
+
● tyler@brave.com (api-key) - owner: user
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### `nexus credential add`
|
|
177
|
+
|
|
178
|
+
Add a new credential. Supports both interactive and non-interactive modes.
|
|
179
|
+
|
|
180
|
+
**Interactive:**
|
|
181
|
+
```bash
|
|
182
|
+
nexus credential add
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
? Service: anthropic
|
|
187
|
+
? Account (email/username): tyler@anthropic.com
|
|
188
|
+
? Credential type: api-key
|
|
189
|
+
? Owner (user / agent:<name>): user
|
|
190
|
+
? Storage provider:
|
|
191
|
+
> keychain (macOS Keychain - secure, no setup)
|
|
192
|
+
1password (requires op CLI)
|
|
193
|
+
env (read from env var)
|
|
194
|
+
external (command that outputs secret)
|
|
195
|
+
|
|
196
|
+
? Enter your API key: sk-ant-xxxxx
|
|
197
|
+
|
|
198
|
+
Storing in macOS Keychain...
|
|
199
|
+
✓ Stored: nexus.anthropic.tyler@anthropic.com
|
|
200
|
+
|
|
201
|
+
Created: state/credentials/anthropic/accounts/tyler@anthropic.com/auth/api-key.json
|
|
202
|
+
|
|
203
|
+
Test with: nexus credential verify anthropic/tyler@anthropic.com
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Non-interactive (for agents):**
|
|
207
|
+
```bash
|
|
208
|
+
nexus credential add \
|
|
209
|
+
--service anthropic \
|
|
210
|
+
--account tyler@anthropic.com \
|
|
211
|
+
--type api-key \
|
|
212
|
+
--owner user \
|
|
213
|
+
--storage keychain \
|
|
214
|
+
--value "sk-ant-xxxxx"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Flags:**
|
|
218
|
+
- `--service` - Service name (anthropic, google, etc.)
|
|
219
|
+
- `--account` - Account identifier (email or username)
|
|
220
|
+
- `--type` - Credential type (api-key, oauth, token)
|
|
221
|
+
- `--owner` - Owner (user, agent:name)
|
|
222
|
+
- `--storage` - Storage provider (keychain, 1password, env, external)
|
|
223
|
+
- `--value` - Secret value for keychain storage
|
|
224
|
+
- `--env-var` - For env storage, which variable to check
|
|
225
|
+
- `--command` - External command that prints the secret
|
|
226
|
+
- `--format` - External output format (raw|json)
|
|
227
|
+
- `--json-path` - JSON path in external output
|
|
228
|
+
- `--vault` - For 1password, which vault
|
|
229
|
+
- `--item` - For 1password, item name
|
|
230
|
+
|
|
231
|
+
### `nexus credential import`
|
|
232
|
+
|
|
233
|
+
Import external CLI credentials into the Nexus store (no secrets stored on disk).
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
nexus credential import claude-cli
|
|
237
|
+
nexus credential import codex-cli
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Options:
|
|
241
|
+
- `--account` - Override account name (default: `claude-cli` / `codex-cli`)
|
|
242
|
+
- `--owner` - Owner (user, agent:name)
|
|
243
|
+
- `--force` - Overwrite existing record
|
|
244
|
+
|
|
245
|
+
### `nexus credential verify`
|
|
246
|
+
|
|
247
|
+
Test that a credential can be retrieved and works.
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
nexus credential verify anthropic # Verify all anthropic accounts
|
|
251
|
+
nexus credential verify anthropic/tyler@anthropic.com # Verify specific account
|
|
252
|
+
nexus credential verify --all # Verify all credentials
|
|
253
|
+
nexus credential verify --json # JSON output
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**Output:**
|
|
257
|
+
```
|
|
258
|
+
Verifying: anthropic/tyler@anthropic.com
|
|
259
|
+
|
|
260
|
+
✓ Storage accessible (keychain)
|
|
261
|
+
✓ Secret retrieved successfully
|
|
262
|
+
✓ API test passed (valid key)
|
|
263
|
+
|
|
264
|
+
Credential is working.
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### `nexus credential remove`
|
|
268
|
+
|
|
269
|
+
Remove a credential.
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
nexus credential remove anthropic/tyler@anthropic.com
|
|
273
|
+
nexus credential remove anthropic/tyler@anthropic.com --keep-secret # Keep in keychain, remove pointer
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Output:**
|
|
277
|
+
```
|
|
278
|
+
Removing: anthropic/tyler@anthropic.com
|
|
279
|
+
|
|
280
|
+
? Also remove from keychain? (y/n) y
|
|
281
|
+
|
|
282
|
+
✓ Removed from keychain
|
|
283
|
+
✓ Removed credential file
|
|
284
|
+
|
|
285
|
+
Credential removed.
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### `nexus credential get`
|
|
289
|
+
|
|
290
|
+
Retrieve a credential value (for scripts/agents).
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
nexus credential get anthropic/tyler@anthropic.com
|
|
294
|
+
# Output: sk-ant-xxxxx (just the value, for piping)
|
|
295
|
+
|
|
296
|
+
# Or with metadata
|
|
297
|
+
nexus credential get anthropic/tyler@anthropic.com --json
|
|
298
|
+
|
|
299
|
+
# Or show the record instead of the value
|
|
300
|
+
nexus credential get anthropic/tyler@anthropic.com --record --json
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### `nexus credential update`
|
|
304
|
+
|
|
305
|
+
Update credential metadata (not the secret itself).
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
nexus credential update anthropic/tyler@anthropic.com --owner agent:echo
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
To update the actual secret, use `add` with `--force`:
|
|
312
|
+
```bash
|
|
313
|
+
nexus credential add --service anthropic --account tyler@anthropic.com --value "new-key" --force
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Account Ownership
|
|
319
|
+
|
|
320
|
+
### `nexus accounts list`
|
|
321
|
+
|
|
322
|
+
List accounts grouped by owner.
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
nexus accounts list # All accounts
|
|
326
|
+
nexus accounts list --user # User's accounts
|
|
327
|
+
nexus accounts list --agent echo # Specific agent's accounts
|
|
328
|
+
nexus accounts list --json # JSON output
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Output:**
|
|
332
|
+
```
|
|
333
|
+
Accounts by Owner
|
|
334
|
+
|
|
335
|
+
User:
|
|
336
|
+
google/tyler@gmail.com
|
|
337
|
+
anthropic/tyler@anthropic.com
|
|
338
|
+
openai/tyler@openai.com
|
|
339
|
+
brave-search/tyler@brave.com
|
|
340
|
+
|
|
341
|
+
Agent (echo):
|
|
342
|
+
google/echo@nexus.bot
|
|
343
|
+
discord/echo-bot
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Environment Variable Detection
|
|
349
|
+
|
|
350
|
+
Nexus can detect API keys in environment variables and offer to import them securely.
|
|
351
|
+
|
|
352
|
+
### `nexus credential scan`
|
|
353
|
+
|
|
354
|
+
Scan for environment variables containing credentials.
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
nexus credential scan # Scan known vars only
|
|
358
|
+
nexus credential scan --deep # Scan ALL env vars for patterns
|
|
359
|
+
nexus credential scan --import # Interactive import
|
|
360
|
+
nexus credential scan --import --auto # Auto-import to keychain (uses 'unknown' for accounts)
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Standard Scan (Known Variables)
|
|
364
|
+
|
|
365
|
+
Checks a predefined list of common env var names:
|
|
366
|
+
|
|
367
|
+
**Known variables:**
|
|
368
|
+
- `ANTHROPIC_API_KEY`
|
|
369
|
+
- `OPENAI_API_KEY`
|
|
370
|
+
- `GEMINI_API_KEY` / `GOOGLE_API_KEY` / `GOOGLE_GENERATIVE_AI_API_KEY`
|
|
371
|
+
- `BRAVE_API_KEY`
|
|
372
|
+
- `GITHUB_TOKEN`
|
|
373
|
+
- `DISCORD_BOT_TOKEN`
|
|
374
|
+
- `SLACK_BOT_TOKEN`
|
|
375
|
+
- `FIRECRAWL_API_KEY`
|
|
376
|
+
- `APIFY_API_TOKEN`
|
|
377
|
+
- `ELEVENLABS_API_KEY`
|
|
378
|
+
- ... (extensible via connector frontmatter)
|
|
379
|
+
|
|
380
|
+
**Output:**
|
|
381
|
+
```
|
|
382
|
+
Scanning environment for known API keys...
|
|
383
|
+
|
|
384
|
+
Found (3):
|
|
385
|
+
✓ ANTHROPIC_API_KEY (sk-ant-...xxxx)
|
|
386
|
+
✓ OPENAI_API_KEY (sk-...xxxx)
|
|
387
|
+
✓ GEMINI_API_KEY (AI...xxxx)
|
|
388
|
+
|
|
389
|
+
Not found (2):
|
|
390
|
+
○ BRAVE_API_KEY
|
|
391
|
+
○ DISCORD_BOT_TOKEN
|
|
392
|
+
|
|
393
|
+
Run 'nexus credential scan --import' to save to keychain.
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Deep Scan (All Environment Variables)
|
|
397
|
+
|
|
398
|
+
Scans ALL env vars looking for patterns that indicate credentials.
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
nexus credential scan --deep
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Asks for confirmation first:**
|
|
405
|
+
```
|
|
406
|
+
Deep scan will examine ALL environment variables to find potential credentials.
|
|
407
|
+
This is useful if you have keys under non-standard names.
|
|
408
|
+
|
|
409
|
+
? Proceed with deep scan? (y/n) y
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Name patterns detected:**
|
|
413
|
+
- `*_API_KEY`, `*_TOKEN`, `*_SECRET`
|
|
414
|
+
- `*_PASSWORD`, `*_AUTH`, `*_CREDENTIAL`
|
|
415
|
+
|
|
416
|
+
**Value patterns detected:**
|
|
417
|
+
- `sk-ant-*` → Anthropic
|
|
418
|
+
- `sk-*` → OpenAI
|
|
419
|
+
- `xoxb-*`, `xoxp-*` → Slack
|
|
420
|
+
- `ghp_*`, `gho_*`, `github_pat_*` → GitHub
|
|
421
|
+
- Long alphanumeric strings (40+ chars) → Generic secret
|
|
422
|
+
|
|
423
|
+
**Output:**
|
|
424
|
+
```
|
|
425
|
+
Deep scanning environment...
|
|
426
|
+
|
|
427
|
+
Known variables:
|
|
428
|
+
✓ ANTHROPIC_API_KEY (sk-ant-...xxxx)
|
|
429
|
+
✓ OPENAI_API_KEY (sk-...xxxx)
|
|
430
|
+
|
|
431
|
+
Discovered (pattern match):
|
|
432
|
+
? MY_CLAUDE_KEY - looks like Anthropic key (sk-ant-...xxxx)
|
|
433
|
+
? WORK_GITHUB_TOKEN - looks like GitHub PAT (ghp_...xxxx)
|
|
434
|
+
? ACME_API_SECRET - generic secret pattern (Kj8x...xxxx)
|
|
435
|
+
|
|
436
|
+
Run 'nexus credential scan --deep --import' to review and import.
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### Import Flow
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
nexus credential scan --import # Import known vars
|
|
443
|
+
nexus credential scan --deep --import # Import known + discovered
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
**Interactive import:**
|
|
447
|
+
```
|
|
448
|
+
$ nexus credential scan --import
|
|
449
|
+
|
|
450
|
+
Found: ANTHROPIC_API_KEY (sk-ant-...xxxx)
|
|
451
|
+
|
|
452
|
+
? Import to nexus credentials? (y/n) y
|
|
453
|
+
? Account (email/username, or 'unknown'): tyler@anthropic.com
|
|
454
|
+
? Owner: user
|
|
455
|
+
|
|
456
|
+
✓ Stored in keychain
|
|
457
|
+
✓ Created: state/credentials/anthropic/accounts/tyler@anthropic.com/auth/api-key.json
|
|
458
|
+
|
|
459
|
+
Found: OPENAI_API_KEY (sk-...xxxx)
|
|
460
|
+
|
|
461
|
+
? Import to nexus credentials? (y/n) y
|
|
462
|
+
? Account (email/username, or 'unknown'): unknown
|
|
463
|
+
? Owner: user
|
|
464
|
+
|
|
465
|
+
✓ Stored in keychain
|
|
466
|
+
✓ Created: state/credentials/openai/accounts/unknown/auth/api-key.json
|
|
467
|
+
|
|
468
|
+
Import complete. 2 credentials added.
|
|
469
|
+
|
|
470
|
+
Note: For 'unknown' accounts, update later with:
|
|
471
|
+
nexus credential update openai/unknown --account your@email.com
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
**Deep scan import (includes discovered vars):**
|
|
475
|
+
```
|
|
476
|
+
$ nexus credential scan --deep --import
|
|
477
|
+
|
|
478
|
+
[... known vars first ...]
|
|
479
|
+
|
|
480
|
+
Discovered: MY_CLAUDE_KEY (sk-ant-...xxxx)
|
|
481
|
+
Detected pattern: Anthropic API key
|
|
482
|
+
|
|
483
|
+
? Is this an Anthropic credential? (y/n) y
|
|
484
|
+
? Account (email/username): tyler@anthropic.com
|
|
485
|
+
? Import to keychain? (y/n) y
|
|
486
|
+
|
|
487
|
+
✓ Imported as anthropic/tyler@anthropic.com
|
|
488
|
+
|
|
489
|
+
Discovered: WORK_GITHUB_TOKEN (ghp_...xxxx)
|
|
490
|
+
Detected pattern: GitHub PAT
|
|
491
|
+
|
|
492
|
+
? Is this a GitHub credential? (y/n) y
|
|
493
|
+
? Account (email/username): tyler-work
|
|
494
|
+
? Import to keychain? (y/n) y
|
|
495
|
+
|
|
496
|
+
✓ Imported as github/tyler-work
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Auto Import
|
|
500
|
+
|
|
501
|
+
For quick onboarding, auto-import uses `unknown` for account names:
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
nexus credential scan --import --auto
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
```
|
|
508
|
+
Auto-importing credentials to keychain...
|
|
509
|
+
|
|
510
|
+
✓ ANTHROPIC_API_KEY → anthropic/unknown
|
|
511
|
+
✓ OPENAI_API_KEY → openai/unknown
|
|
512
|
+
✓ GEMINI_API_KEY → gemini/unknown
|
|
513
|
+
|
|
514
|
+
Imported 3 credentials.
|
|
515
|
+
|
|
516
|
+
Update account names later with:
|
|
517
|
+
nexus credential update anthropic/unknown --account your@email.com
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## Configuration
|
|
523
|
+
|
|
524
|
+
### Default Storage Provider
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
nexus config set credential-store keychain # Default for new credentials
|
|
528
|
+
nexus config set credential-store 1password
|
|
529
|
+
nexus config get credential-store
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### 1Password Settings
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
nexus config set 1password-vault Nexus # Default vault
|
|
536
|
+
nexus config get 1password-vault
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
## Integration with Connectors
|
|
542
|
+
|
|
543
|
+
When running `nexus connector setup <name>`, the connector's setup guide walks through creating credentials:
|
|
544
|
+
|
|
545
|
+
```bash
|
|
546
|
+
$ nexus connector setup google-oauth
|
|
547
|
+
|
|
548
|
+
# ... OAuth flow happens ...
|
|
549
|
+
|
|
550
|
+
# Under the hood, this calls:
|
|
551
|
+
nexus credential add \
|
|
552
|
+
--service google \
|
|
553
|
+
--account tyler@gmail.com \
|
|
554
|
+
--type oauth \
|
|
555
|
+
--owner user \
|
|
556
|
+
--storage keychain \
|
|
557
|
+
--value "<oauth-token-json>"
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
Connectors know which credentials they need. Tools reference connectors, and connectors reference credentials.
|
|
561
|
+
|
|
562
|
+
```
|
|
563
|
+
Tool (gog)
|
|
564
|
+
→ requires Connector (google-oauth)
|
|
565
|
+
→ requires Credential (google/tyler@gmail.com/oauth)
|
|
566
|
+
→ stored in Keychain
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
## Examples
|
|
572
|
+
|
|
573
|
+
### Agent checking available credentials
|
|
574
|
+
|
|
575
|
+
```bash
|
|
576
|
+
# What credentials do I have?
|
|
577
|
+
nexus credential list --json
|
|
578
|
+
|
|
579
|
+
# Can I use anthropic?
|
|
580
|
+
nexus credential verify anthropic
|
|
581
|
+
|
|
582
|
+
# Get the key for a script
|
|
583
|
+
API_KEY=$(nexus credential get anthropic/tyler@anthropic.com)
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
### User setting up from scratch
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
# Scan what's already in env
|
|
590
|
+
nexus credential scan --import
|
|
591
|
+
|
|
592
|
+
# Add a new one manually
|
|
593
|
+
nexus credential add
|
|
594
|
+
|
|
595
|
+
# Verify everything works
|
|
596
|
+
nexus credential verify --all
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
### Migrating env vars to keychain
|
|
600
|
+
|
|
601
|
+
```bash
|
|
602
|
+
# See what's in env
|
|
603
|
+
nexus credential scan
|
|
604
|
+
|
|
605
|
+
# Import all to keychain
|
|
606
|
+
nexus credential scan --import --auto
|
|
607
|
+
|
|
608
|
+
# Now you can remove from .zshrc/.bashrc
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
## Security Notes
|
|
614
|
+
|
|
615
|
+
1. **Secrets never in files** - Credential files contain pointers, not secrets.
|
|
616
|
+
|
|
617
|
+
2. **Keychain is OS-encrypted** - macOS Keychain uses hardware encryption.
|
|
618
|
+
|
|
619
|
+
3. **1Password requires unlock** - May prompt for authentication.
|
|
620
|
+
|
|
621
|
+
4. **Env vars are visible** - `ps` can show env vars; keychain is safer.
|
|
622
|
+
|
|
623
|
+
5. **Agent access** - Agents can retrieve credentials they own or shared credentials.
|
|
624
|
+
|
|
625
|
+
---
|
|
626
|
+
|
|
627
|
+
## Related Documents
|
|
628
|
+
|
|
629
|
+
- [CLI_GRAMMAR_SKILLS.md](./CLI_GRAMMAR_SKILLS.md) - Skill/connector commands
|
|
630
|
+
- [STATE_ARCHITECTURE.md](./STATE_ARCHITECTURE.md) - Full state structure
|
|
631
|
+
- [ENTITY_MODEL.md](./ENTITY_MODEL.md) - Connector definitions
|
|
632
|
+
- CLI_GRAMMAR_ONBOARDING.md - Onboarding commands (TBD)
|