Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2115 commits
Select commit Hold shift + click to select a range
d168ada
✨ 🪕 officialMarketplaceGcs.ts
nirholas Mar 31, 2026
ee8d4f5
✨ 🥁 officialMarketplaceStartupCheck.ts
nirholas Mar 31, 2026
1827d11
✨ 🪘 orphanedPluginFilter.ts
nirholas Mar 31, 2026
54653bd
✨ 🔔 parseMarketplaceInput.ts
nirholas Mar 31, 2026
f47125b
⚡ 🔕 performStartupChecks.tsx
nirholas Mar 31, 2026
783d205
📝 📢 pluginAutoupdate.ts
nirholas Mar 31, 2026
eb16b04
✨ 📣 pluginBlocklist.ts
nirholas Mar 31, 2026
7cc23b1
🎙️ pluginDirectories.ts
nirholas Mar 31, 2026
68ccb91
🎚️ pluginFlagging.ts
nirholas Mar 31, 2026
e18bb77
🎛️ pluginIdentifier.ts
nirholas Mar 31, 2026
5d67826
✨ 📻 pluginInstallationHelpers.ts
nirholas Mar 31, 2026
f6937aa
✨ 🎯 pluginLoader.ts
nirholas Mar 31, 2026
dbed50d
✨ 🎱 pluginOptionsStorage.ts
nirholas Mar 31, 2026
29950f0
✨ 🎳 pluginPolicy.ts
nirholas Mar 31, 2026
b2e2ba3
✨ 🎮 pluginStartupCheck.ts
nirholas Mar 31, 2026
3e61bbc
🕹️ pluginVersioning.ts
nirholas Mar 31, 2026
9314c18
✨ 🎰 reconciler.ts
nirholas Mar 31, 2026
fe9119c
✨ 🎲 refresh.ts
nirholas Mar 31, 2026
a33e047
✨ 🧩 schemas.ts
nirholas Mar 31, 2026
966447d
✨ 🧸 validatePlugin.ts
nirholas Mar 31, 2026
05773de
✨ 🪆 walkPluginMarkdown.ts
nirholas Mar 31, 2026
0815248
♟️ zipCache.ts
nirholas Mar 31, 2026
aff143d
✨ 🃏 zipCacheAdapters.ts
nirholas Mar 31, 2026
af953b3
✨ 🀄 dangerousCmdlets.ts
nirholas Mar 31, 2026
bfe9fbb
✨ 🎴 parser.ts
nirholas Mar 31, 2026
9142138
🐛 ⚽ staticPrefix.ts
nirholas Mar 31, 2026
3c7be6f
✨ ⚾ preflightChecks.tsx
nirholas Mar 31, 2026
91beffb
✨ 🥎 privacyLevel.ts
nirholas Mar 31, 2026
dcf4b37
✨ 🏀 process.ts
nirholas Mar 31, 2026
caee0a1
✨ 🏐 processBashCommand.tsx
nirholas Mar 31, 2026
838340c
✨ 🏈 processSlashCommand.tsx
nirholas Mar 31, 2026
f2a73a4
✨ 🏉 processTextPrompt.ts
nirholas Mar 31, 2026
3370ac1
✨ 🎾 processUserInput.ts
nirholas Mar 31, 2026
2b9e6b5
✨ 🥏 profilerBase.ts
nirholas Mar 31, 2026
2823e2f
✨ 🏏 promptCategory.ts
nirholas Mar 31, 2026
399dcd2
✨ 🏑 promptEditor.ts
nirholas Mar 31, 2026
8b41ee7
✨ 🏒 promptShellExecution.ts
nirholas Mar 31, 2026
62dbee5
✨ 🥍 proxy.ts
nirholas Mar 31, 2026
420e29a
✨ 🏓 queryContext.ts
nirholas Mar 31, 2026
68232d5
✨ 🏸 queryHelpers.ts
nirholas Mar 31, 2026
cd9df02
✨ 🥊 queryProfiler.ts
nirholas Mar 31, 2026
97929bb
✨ 🥋 queueProcessor.ts
nirholas Mar 31, 2026
fc91367
✨ 🥅 readEditContext.ts
nirholas Mar 31, 2026
1e653a6
✨ ⛳ readFileInRange.ts
nirholas Mar 31, 2026
365e80c
⛸️ releaseNotes.ts
nirholas Mar 31, 2026
b98661d
✨ 🎣 renderOptions.ts
nirholas Mar 31, 2026
f0ce447
✨ 🎽 ripgrep.ts
nirholas Mar 31, 2026
4fa65e4
✨ 🎿 sandbox-adapter.ts
nirholas Mar 31, 2026
ed02dd6
✨ 🛷 sandbox-ui-utils.ts
nirholas Mar 31, 2026
e918864
✨ 🥌 sanitization.ts
nirholas Mar 31, 2026
4c27952
✨ 🪀 screenshotClipboard.ts
nirholas Mar 31, 2026
7182aa6
✨ 🪁 sdkEventQueue.ts
nirholas Mar 31, 2026
2f070d9
✨ 🏆 fallbackStorage.ts
nirholas Mar 31, 2026
d6047d1
✨ 🏅 index.ts
nirholas Mar 31, 2026
9676b13
✨ 🥇 keychainPrefetch.ts
nirholas Mar 31, 2026
0cd256a
✨ 🥈 macOsKeychainHelpers.ts
nirholas Mar 31, 2026
94b7aa9
✨ 🥉 macOsKeychainStorage.ts
nirholas Mar 31, 2026
2df7513
🎖️ plainTextStorage.ts
nirholas Mar 31, 2026
34ed779
🎗️ semanticBoolean.ts
nirholas Mar 31, 2026
4fb7003
🎟️ semanticNumber.ts
nirholas Mar 31, 2026
b0be880
✨ 🎫 semver.ts
nirholas Mar 31, 2026
8a0d57c
✨ 🎀 sequential.ts
nirholas Mar 31, 2026
57c5ced
✨ 🎁 sessionActivity.ts
nirholas Mar 31, 2026
6aa0a47
✨ 🎈 sessionEnvVars.ts
nirholas Mar 31, 2026
e0be08f
🎉 sessionEnvironment.ts
nirholas Mar 31, 2026
0f18be2
✨ 🎊 sessionFileAccessHooks.ts
nirholas Mar 31, 2026
d020e31
🔐 🎋 sessionIngressAuth.ts
nirholas Mar 31, 2026
c142d42
✨ 🎍 sessionRestore.ts
nirholas Mar 31, 2026
223edef
✨ 🎎 sessionStart.ts
nirholas Mar 31, 2026
a979e04
✨ 🎏 sessionState.ts
nirholas Mar 31, 2026
ba0f52d
✨ 🎐 sessionStorage.ts
nirholas Mar 31, 2026
2eeb052
✨ 🎑 sessionStoragePortable.ts
nirholas Mar 31, 2026
a4d8149
✨ 🧧 sessionTitle.ts
nirholas Mar 31, 2026
1a5f1ea
✨ 🎄 sessionUrl.ts
nirholas Mar 31, 2026
12880be
✨ 🎃 set.ts
nirholas Mar 31, 2026
0330222
❤️ allErrors.ts
nirholas Mar 31, 2026
69b70d2
📝 🧡 applySettingsChange.ts
nirholas Mar 31, 2026
5da7805
📝 💛 changeDetector.ts
nirholas Mar 31, 2026
eec1534
✨ 💚 constants.ts
nirholas Mar 31, 2026
cb977d7
✨ 💙 internalWrites.ts
nirholas Mar 31, 2026
88b8c35
✨ 💜 managedPath.ts
nirholas Mar 31, 2026
c83bcad
✨ 🖤 constants.ts
nirholas Mar 31, 2026
1e1d216
✨ 🤍 rawRead.ts
nirholas Mar 31, 2026
2bafa4b
✨ 🤎 settings.ts
nirholas Mar 31, 2026
1ca9900
✨ 💕 permissionValidation.ts
nirholas Mar 31, 2026
febc445
✨ 💞 pluginOnlyPolicy.ts
nirholas Mar 31, 2026
5a4040d
✨ 💓 schemaOutput.ts
nirholas Mar 31, 2026
5636126
✨ 💗 settings.ts
nirholas Mar 31, 2026
724f9a5
✨ 💖 settingsCache.ts
nirholas Mar 31, 2026
03767e5
⚙️ 💘 toolValidationConfig.ts
nirholas Mar 31, 2026
d8613e2
✨ 💝 types.ts
nirholas Mar 31, 2026
4b3d510
✨ 💟 validateEditTool.ts
nirholas Mar 31, 2026
3c737e0
❣️ validation.ts
nirholas Mar 31, 2026
7d4f102
♥️ validationTips.ts
nirholas Mar 31, 2026
39f670e
☮️ bashProvider.ts
nirholas Mar 31, 2026
9cbb3e6
✝️ outputLimits.ts
nirholas Mar 31, 2026
00a22cf
☪️ powershellDetection.ts
nirholas Mar 31, 2026
39144d2
🕉️ powershellProvider.ts
nirholas Mar 31, 2026
7139789
☸️ prefix.ts
nirholas Mar 31, 2026
e8bb1fc
✡️ readOnlyCommandValidation.ts
nirholas Mar 31, 2026
8890a1c
✨ 🔯 resolveDefaultShell.ts
nirholas Mar 31, 2026
ef80341
✨ 🕎 shellProvider.ts
nirholas Mar 31, 2026
f5a9d99
☯️ shellToolUtils.ts
nirholas Mar 31, 2026
429db52
☦️ specPrefix.ts
nirholas Mar 31, 2026
116c7ed
⚙️ 🛐 shellConfig.ts
nirholas Mar 31, 2026
61cdd33
✨ ⛎ sideQuery.ts
nirholas Mar 31, 2026
249c9ab
✨ ♈ sideQuestion.ts
nirholas Mar 31, 2026
dff7793
✨ ♉ signal.ts
nirholas Mar 31, 2026
2322b82
✨ ♊ sinks.ts
nirholas Mar 31, 2026
be93214
📝 ♋ skillChangeDetector.ts
nirholas Mar 31, 2026
75f1980
✨ ♌ slashCommandParsing.ts
nirholas Mar 31, 2026
466bfc9
✨ ♍ sleep.ts
nirholas Mar 31, 2026
02c6dfe
✨ ♎ sliceAnsi.ts
nirholas Mar 31, 2026
f0e7c72
✨ ♏ slowOperations.ts
nirholas Mar 31, 2026
6352706
✨ ♐ standaloneAgent.ts
nirholas Mar 31, 2026
e38f5ad
✨ ♑ startupProfiler.ts
nirholas Mar 31, 2026
8b0e32a
✨ ♒ staticRender.tsx
nirholas Mar 31, 2026
712ad1b
✨ ♓ stats.ts
nirholas Mar 31, 2026
c8fe9ba
⚛️ statsCache.ts
nirholas Mar 31, 2026
ad171c7
🔀 status.tsx
nirholas Mar 31, 2026
989c90b
🎉 🔁 statusNoticeDefinitions.tsx
nirholas Mar 31, 2026
e19bd10
✨ 🔂 statusNoticeHelpers.ts
nirholas Mar 31, 2026
3eee6ae
✨ 🔄 stream.ts
nirholas Mar 31, 2026
be90914
✨ 🔃 streamJsonStdoutGuard.ts
nirholas Mar 31, 2026
1ab4e25
▶️ streamlinedTransform.ts
nirholas Mar 31, 2026
aa2c35b
✨ ⏩ stringUtils.ts
nirholas Mar 31, 2026
a25bb22
⏭️ subprocessEnv.ts
nirholas Mar 31, 2026
e962fd6
⏯️ commandSuggestions.ts
nirholas Mar 31, 2026
ce9277c
◀️ directoryCompletion.ts
nirholas Mar 31, 2026
e193b7e
⏪ shellHistoryCompletion.ts
nirholas Mar 31, 2026
c4e040d
⏮️ skillUsageTracking.ts
nirholas Mar 31, 2026
f4717f7
✨ 🔼 slackChannelSuggestions.ts
nirholas Mar 31, 2026
eabc3b5
✨ ⏫ It2SetupPrompt.tsx
nirholas Mar 31, 2026
02f161a
✨ 🔽 ITermBackend.ts
nirholas Mar 31, 2026
9dbd7ae
✨ ⏬ InProcessBackend.ts
nirholas Mar 31, 2026
7c4e134
⏸️ PaneBackendExecutor.ts
nirholas Mar 31, 2026
13ece6e
⏹️ TmuxBackend.ts
nirholas Mar 31, 2026
2f8efca
⏺️ detection.ts
nirholas Mar 31, 2026
d0671a7
⏏️ it2Setup.ts
nirholas Mar 31, 2026
47d4de4
✨ 🎦 registry.ts
nirholas Mar 31, 2026
c5d0dfd
✨ 📶 teammateModeSnapshot.ts
nirholas Mar 31, 2026
2b525e9
✨ 📳 types.ts
nirholas Mar 31, 2026
8cfeded
✨ 📴 constants.ts
nirholas Mar 31, 2026
d2e3271
✖️ inProcessRunner.ts
nirholas Mar 31, 2026
b411461
✨ ➕ leaderPermissionBridge.ts
nirholas Mar 31, 2026
d760e42
✨ ➖ permissionSync.ts
nirholas Mar 31, 2026
dc130c8
✨ ➗ reconnection.ts
nirholas Mar 31, 2026
08a6cea
♾️ spawnInProcess.ts
nirholas Mar 31, 2026
4877404
‼️ spawnUtils.ts
nirholas Mar 31, 2026
15a4a91
⁉️ teamHelpers.ts
nirholas Mar 31, 2026
d5a9ef5
🎉 ❓ teammateInit.ts
nirholas Mar 31, 2026
a662d65
✨ ❔ teammateLayoutManager.ts
nirholas Mar 31, 2026
404fc4f
✨ ❕ teammateModel.ts
nirholas Mar 31, 2026
4d91a8e
✨ ❗ teammatePromptAddendum.ts
nirholas Mar 31, 2026
f7a75ea
〰️ systemDirectories.ts
nirholas Mar 31, 2026
e22d767
✨ 💱 systemPrompt.ts
nirholas Mar 31, 2026
24e82e8
✨ 💲 systemPromptType.ts
nirholas Mar 31, 2026
da1725a
⚕️ systemTheme.ts
nirholas Mar 31, 2026
ed70e61
♻️ taggedId.ts
nirholas Mar 31, 2026
e532cb0
⚜️ TaskOutput.ts
nirholas Mar 31, 2026
23d9758
✨ 🔱 diskOutput.ts
nirholas Mar 31, 2026
3cb7986
✨ 📛 framework.ts
nirholas Mar 31, 2026
7b3c902
💄 🔰 outputFormatting.ts
nirholas Mar 31, 2026
a98aaa4
🚧 ⭕ sdkProgress.ts
nirholas Mar 31, 2026
8d4a2c2
✅ tasks.ts
nirholas Mar 31, 2026
60cdc3e
☑️ teamDiscovery.ts
nirholas Mar 31, 2026
1bb455d
✔️ teamMemoryOps.ts
nirholas Mar 31, 2026
d384f17
✨ ❌ teammate.ts
nirholas Mar 31, 2026
42bfb50
✨ ❎ teammateContext.ts
nirholas Mar 31, 2026
1ccd128
✨ ➰ teammateMailbox.ts
nirholas Mar 31, 2026
490dd5f
✨ ➿ betaSessionTracing.ts
nirholas Mar 31, 2026
90e34ea
〽️ bigqueryExporter.ts
nirholas Mar 31, 2026
3f740b8
✳️ events.ts
nirholas Mar 31, 2026
450fec9
✴️ instrumentation.ts
nirholas Mar 31, 2026
c89778e
❇️ logger.ts
nirholas Mar 31, 2026
a06925f
©️ perfettoTracing.ts
nirholas Mar 31, 2026
61a02b0
®️ pluginTelemetry.ts
nirholas Mar 31, 2026
1ee4627
™️ sessionTracing.ts
nirholas Mar 31, 2026
65e604d
✨ ⭐ skillLoadedEvent.ts
nirholas Mar 31, 2026
0cd7168
✨ 🌟 telemetryAttributes.ts
nirholas Mar 31, 2026
e63a03e
✨ teleport.tsx
nirholas Mar 31, 2026
ab37952
✨ 💫 api.ts
nirholas Mar 31, 2026
80ffca9
✨ 🌠 environmentSelection.ts
nirholas Mar 31, 2026
24b5894
✨ 🔆 environments.ts
nirholas Mar 31, 2026
1fdf6a8
✨ 🔅 gitBundle.ts
nirholas Mar 31, 2026
eacd70a
🚀 tempfile.ts
nirholas Mar 31, 2026
396f6b9
🛠️ terminal.ts
nirholas Mar 31, 2026
a53d885
⚙️ terminalPanel.ts
nirholas Mar 31, 2026
36fe190
🔧 textHighlighting.ts
nirholas Mar 31, 2026
f3e519b
✨ 🔩 theme.ts
nirholas Mar 31, 2026
cdc3a12
⛏️ thinking.ts
nirholas Mar 31, 2026
7622e1a
✨ 🔨 timeouts.ts
nirholas Mar 31, 2026
5ec91de
✨ 🪛 tmuxSocket.ts
nirholas Mar 31, 2026
ac6c20d
✨ 🪚 types.ts
nirholas Mar 31, 2026
5b5e6ad
✨ 🔗 tokenBudget.ts
nirholas Mar 31, 2026
1a3bdfc
⛓️ tokens.ts
nirholas Mar 31, 2026
60108ab
✨ 🧰 toolErrors.ts
nirholas Mar 31, 2026
9f27c90
✨ 🔌 toolPool.ts
nirholas Mar 31, 2026
ca8ee35
✨ 💡 toolResultStorage.ts
nirholas Mar 31, 2026
3bc8309
✨ 🔋 toolSchemaCache.ts
nirholas Mar 31, 2026
0e3883d
✨ 💻 toolSearch.ts
nirholas Mar 31, 2026
f235c78
🖥️ transcriptSearch.ts
nirholas Mar 31, 2026
f6aad9a
⌨️ treeify.ts
nirholas Mar 31, 2026
4382d6d
🖱️ truncate.ts
nirholas Mar 31, 2026
2cad1d1
✨ 💾 ccrSession.ts
nirholas Mar 31, 2026
6bc3674
✨ 💿 keyword.ts
nirholas Mar 31, 2026
f6c11f8
✨ 📀 unaryLogging.ts
nirholas Mar 31, 2026
fadf710
✨ 🧮 undercover.ts
nirholas Mar 31, 2026
e9cffa9
✨ 📱 user.ts
nirholas Mar 31, 2026
f018653
✨ 📡 userAgent.ts
nirholas Mar 31, 2026
e8d2f65
✨ 🔭 userPromptKeywords.ts
nirholas Mar 31, 2026
ede8d57
✨ 🔬 uuid.ts
nirholas Mar 31, 2026
8f5e753
✨ 🧪 warningHandler.ts
nirholas Mar 31, 2026
34b35f7
✨ 🧬 which.ts
nirholas Mar 31, 2026
24f3849
⚗️ windowsPaths.ts
nirholas Mar 31, 2026
e36ac98
✨ 💎 withResolvers.ts
nirholas Mar 31, 2026
59e736b
✨ 🔷 words.ts
nirholas Mar 31, 2026
c7831c9
✨ 🔶 workloadContext.ts
nirholas Mar 31, 2026
7fae163
✨ 🔹 worktree.ts
nirholas Mar 31, 2026
d355621
✨ 🔸 worktreeModeEnabled.ts
nirholas Mar 31, 2026
4be7242
✨ 🔺 xdg.ts
nirholas Mar 31, 2026
8eba965
✨ 🔻 xml.ts
nirholas Mar 31, 2026
cd3ebfb
✨ 💠 yaml.ts
nirholas Mar 31, 2026
125e232
✨ 🔘 zodToJsonSchema.ts
nirholas Mar 31, 2026
383b698
✨ ⚪ motions.ts
nirholas Mar 31, 2026
69764a2
✨ 🟣 operators.ts
nirholas Mar 31, 2026
a4f6bed
✨ 🔵 textObjects.ts
nirholas Mar 31, 2026
5e4584c
✨ 🟢 transitions.ts
nirholas Mar 31, 2026
bf4c330
✨ 🟡 types.ts
nirholas Mar 31, 2026
2e38e81
✨ 🟠 voiceModeEnabled.ts
nirholas Mar 31, 2026
08bab08
⚙️ 🔴 tsconfig.json
nirholas Mar 31, 2026
e969d64
📝
nirholas Mar 31, 2026
ce45895
✨ milady
nirholas Mar 31, 2026
7a9e252
✨ Add Dockerfile and Vercel integration for MCP server
nirholas Mar 31, 2026
3511300
📝 feat: update TypeScript configuration and add API support
nirholas Mar 31, 2026
94db744
✨ Enhance build scripts and add new feature flags in bun-bundle
nirholas Mar 31, 2026
2d2d7d8
✨ Enhance build scripts and add new feature flags for KAIROS and work…
nirholas Mar 31, 2026
30ebe49
✨ Add qrcode dependency to package.json
nirholas Mar 31, 2026
591d00d
✨ Add TypeScript configuration and local type declarations for build …
nirholas Mar 31, 2026
53e5a97
✨ Fix import.meta.dir fallback handling in build scripts
nirholas Mar 31, 2026
e6bcc38
✨ feat: add new message types and update package dependencies
nirholas Mar 31, 2026
2e5e345
♻️ feat: implement session management for PTY sessions in the server
nirholas Mar 31, 2026
b3ccb61
📝
nirholas Mar 31, 2026
1b23ece
✨ feat: implement API key authentication and user session management
nirholas Mar 31, 2026
4575da3
✨ milady
nirholas Mar 31, 2026
422d90a
🔧 chore: ignore web/.next build output
nirholas Mar 31, 2026
64f287c
✨ feat: add terminal color themes and effects
nirholas Mar 31, 2026
95011ac
✨ test: add unit tests for feature flags, macro properties, commands,…
nirholas Mar 31, 2026
d1c283f
✨ feat: update README for clarity and accuracy; add integration tests…
nirholas Mar 31, 2026
c2357be
♻️ Refactor tool tests and add core tools validation
nirholas Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 32 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Dependencies (rebuilt in container)
node_modules

# Git metadata
.git
.github
.gitignore

# Build output (rebuilt in container)
dist

# Env files — never bake secrets into the image
.env
.env.*

# Logs and debug
*.log
npm-debug.log*
bun-debug.log*

# Test artifacts
coverage
.nyc_output

# Editor / OS noise
.DS_Store
Thumbs.db
.vscode
.idea

# Docker context itself
docker
297 changes: 297 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
# =============================================================================
# Claude Code CLI — Environment Variables
# =============================================================================
# Copy this file to .env and fill in the values you need.
# All variables are optional unless noted otherwise.
#
# ─── HOW AUTHENTICATION WORKS ───────────────────────────────────────────────
#
# The CLI supports multiple authentication backends, resolved in this order:
#
# 1. PROVIDER SELECTION (src/utils/model/providers.ts — getAPIProvider()):
# Checks CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, or
# CLAUDE_CODE_USE_FOUNDRY. If set, routes to that 3rd-party provider.
# Otherwise uses Direct Anthropic API.
#
# 2. OAUTH vs API KEY DECISION (src/utils/auth.ts — isAnthropicAuthEnabled()):
# OAuth is DISABLED (API-key-only mode) when any of these are true:
# - --bare flag is used (sets CLAUDE_CODE_SIMPLE=1)
# - CLAUDE_CODE_USE_BEDROCK / VERTEX / FOUNDRY is set
# - ANTHROPIC_API_KEY env var is set (and not in managed OAuth context)
# - ANTHROPIC_AUTH_TOKEN env var is set
# - An apiKeyHelper is configured in settings
# If none of the above, OAuth is attempted via ~/.claude/.credentials.json.
#
# 3. API KEY RESOLUTION (src/utils/auth.ts — getAnthropicApiKey()):
# Priority order when OAuth is not active:
# a. CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR (pipe-passed key)
# b. apiKeyHelper (configured external command in settings)
# c. ANTHROPIC_API_KEY env var
# d. System keychain
# e. ~/.claude/.credentials config
#
# 4. CLIENT CONSTRUCTION (src/services/api/client.ts — getAnthropicClient()):
# Creates the appropriate SDK client (Anthropic, Bedrock, Vertex, or
# Foundry) using the resolved auth credentials plus any custom headers
# from ANTHROPIC_CUSTOM_HEADERS.
#
# FOR DEVELOPMENT: The simplest path is to set ANTHROPIC_API_KEY below.
# The auth system will detect the external key and skip OAuth entirely.
# =============================================================================

# ── Authentication ───────────────────────────────────────────────────────────
# Your Anthropic API key (required for direct API access)
ANTHROPIC_API_KEY=

# Bearer auth token (alternative to API key — used by bridge/remote)
# ANTHROPIC_AUTH_TOKEN=

# Custom API base URL (default: https://api.anthropic.com)
# ANTHROPIC_BASE_URL=

# Custom headers sent with every API request (multiline, "Name: Value" per line)
# ANTHROPIC_CUSTOM_HEADERS=

# Add additional protection header to API requests
# CLAUDE_CODE_ADDITIONAL_PROTECTION=true

# Pipe-pass API key via file descriptor (advanced — for managed environments)
# CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR=

# ── Model Selection ──────────────────────────────────────────────────────────
# Override the default model
# ANTHROPIC_MODEL=

# Override the small/fast model used internally
# ANTHROPIC_SMALL_FAST_MODEL=

# Custom model overrides (name + description are optional display labels)
# ANTHROPIC_DEFAULT_OPUS_MODEL=
# ANTHROPIC_DEFAULT_OPUS_MODEL_NAME=
# ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION=
# ANTHROPIC_DEFAULT_SONNET_MODEL=
# ANTHROPIC_DEFAULT_SONNET_MODEL_NAME=
# ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION=
# ANTHROPIC_DEFAULT_HAIKU_MODEL=
# ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME=
# ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION=

# Custom model option (shown alongside built-in models)
# ANTHROPIC_CUSTOM_MODEL_OPTION=
# ANTHROPIC_CUSTOM_MODEL_OPTION_NAME=
# ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION=

# Model for sub-agents / teammates
# CLAUDE_CODE_SUBAGENT_MODEL=

# ── AWS Bedrock ──────────────────────────────────────────────────────────────
# Enable Bedrock backend (uses AWS SDK default credentials: IAM, profile, env)
# CLAUDE_CODE_USE_BEDROCK=true

# Custom Bedrock endpoint URL
# ANTHROPIC_BEDROCK_BASE_URL=

# AWS region for Bedrock (default: us-east-1)
# AWS_REGION=us-east-1
# AWS_DEFAULT_REGION=us-east-1

# Override AWS region specifically for the small fast model (Haiku)
# ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=

# Bearer token auth for Bedrock (alternative to IAM)
# AWS_BEARER_TOKEN_BEDROCK=

# Skip Bedrock auth (for testing without real AWS credentials)
# CLAUDE_CODE_SKIP_BEDROCK_AUTH=false

# ── Google Vertex AI ─────────────────────────────────────────────────────────
# Enable Vertex AI backend
# CLAUDE_CODE_USE_VERTEX=true

# Required: Your GCP project ID
# ANTHROPIC_VERTEX_PROJECT_ID=

# Default GCP region for all models
# CLOUD_ML_REGION=us-east5

# Model-specific region overrides (highest priority)
# VERTEX_REGION_CLAUDE_3_5_HAIKU=
# VERTEX_REGION_CLAUDE_HAIKU_4_5=
# VERTEX_REGION_CLAUDE_3_5_SONNET=
# VERTEX_REGION_CLAUDE_3_7_SONNET=

# Custom Vertex base URL
# ANTHROPIC_VERTEX_BASE_URL=

# GCP service account credentials JSON file
# GOOGLE_APPLICATION_CREDENTIALS=

# Skip Vertex auth (for testing without real GCP credentials)
# CLAUDE_CODE_SKIP_VERTEX_AUTH=false

# ── Azure Foundry ────────────────────────────────────────────────────────────
# Enable Azure Foundry backend
# CLAUDE_CODE_USE_FOUNDRY=true

# Azure resource name (creates URL: https://{resource}.services.ai.azure.com/...)
# ANTHROPIC_FOUNDRY_RESOURCE=

# Alternative: provide full base URL directly instead of resource name
# ANTHROPIC_FOUNDRY_BASE_URL=

# Foundry API key (if not set, uses Azure AD / DefaultAzureCredential)
# ANTHROPIC_FOUNDRY_API_KEY=

# Skip Foundry auth (for testing without real Azure credentials)
# CLAUDE_CODE_SKIP_FOUNDRY_AUTH=false

# ── Shell & Environment ─────────────────────────────────────────────────────
# Override shell used for BashTool (default: auto-detected)
# CLAUDE_CODE_SHELL=/bin/bash

# Prefix prepended to every shell command
# CLAUDE_CODE_SHELL_PREFIX=

# Override temp directory
# CLAUDE_CODE_TMPDIR=

# ── Performance & Limits ─────────────────────────────────────────────────────
# Maximum output tokens per response
# CLAUDE_CODE_MAX_OUTPUT_TOKENS=

# Maximum tokens when reading files
# CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS=

# Idle timeout (minutes) before session ends (default: 75)
# CLAUDE_CODE_IDLE_THRESHOLD_MINUTES=75

# Idle token threshold (default: 100000)
# CLAUDE_CODE_IDLE_TOKEN_THRESHOLD=100000

# Node.js options (e.g. heap size)
# NODE_OPTIONS=--max-old-space-size=8192

# ── Features & Modes ────────────────────────────────────────────────────────
# Enable simplified/worker mode (also set by --bare flag)
# CLAUDE_CODE_SIMPLE=true

# Enable coordinator (multi-agent) mode
# CLAUDE_CODE_COORDINATOR_MODE=true

# Enable proactive mode
# CLAUDE_CODE_PROACTIVE=true

# Enable experimental agent teams
# CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=true

# Enable task management
# CLAUDE_CODE_ENABLE_TASKS=true

# Enable prompt suggestions
# CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true

# ── Accessibility & UX ──────────────────────────────────────────────────────
# Enable accessibility mode
# CLAUDE_CODE_ACCESSIBILITY=true

# Disable terminal title updates
# CLAUDE_CODE_DISABLE_TERMINAL_TITLE=true

# Disable virtual scrolling
# CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL=true

# Streamlined output (less verbose)
# CLAUDE_CODE_STREAMLINED_OUTPUT=true

# Disable syntax highlighting
# CLAUDE_CODE_SYNTAX_HIGHLIGHT=false

# ── Remote / Bridge ─────────────────────────────────────────────────────────
# Enable remote execution mode
# CLAUDE_CODE_REMOTE=true

# Remote session ID
# CLAUDE_CODE_REMOTE_SESSION_ID=

# Environment kind (e.g. bridge)
# CLAUDE_CODE_ENVIRONMENT_KIND=

# OAuth token injected by bridge/CCR
# CLAUDE_CODE_OAUTH_TOKEN=

# OAuth refresh token for bridge
# CLAUDE_CODE_OAUTH_REFRESH_TOKEN=

# OAuth scopes
# CLAUDE_CODE_OAUTH_SCOPES=

# Session access token for remote
# CLAUDE_CODE_SESSION_ACCESS_TOKEN=

# Unix socket for SSH remote auth
# ANTHROPIC_UNIX_SOCKET=

# Entrypoint identifier (cli, mcp, remote, sdk-*, etc.)
# CLAUDE_CODE_ENTRYPOINT=cli

# ── Debugging ────────────────────────────────────────────────────────────────
# Debug log level (error, warn, info, debug, trace)
# CLAUDE_CODE_DEBUG_LOG_LEVEL=info

# Debug logs directory
# CLAUDE_CODE_DEBUG_LOGS_DIR=

# Enable startup profiling
# CLAUDE_CODE_PROFILE_STARTUP=true

# General debug flag
# DEBUG=true

# ── Privacy & Telemetry ─────────────────────────────────────────────────────
# Disable telemetry
# DISABLE_TELEMETRY=true

# Disable non-essential network traffic
# CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=true

# ── Proxy & Network ─────────────────────────────────────────────────────────
# HTTPS proxy
# HTTPS_PROXY=

# Custom SSL certificate
# SSL_CERT_FILE=

# =============================================================================
# ─── OAUTH STUB NOTES (Part D) ─────────────────────────────────────────────
# =============================================================================
#
# The OAuth flow (src/services/oauth/) requires a browser and Anthropic's
# OAuth endpoints. For development, you do NOT need to stub anything —
# just set ANTHROPIC_API_KEY and the auth system will skip OAuth automatically.
#
# How it works:
# src/utils/auth.ts — isAnthropicAuthEnabled() checks whether OAuth should
# be attempted. When it detects ANTHROPIC_API_KEY in the environment (and
# the context is not a "managed OAuth" context like Claude Desktop), it
# returns false, which causes the entire OAuth path to be bypassed.
#
# Decision chain:
# 1. isAnthropicAuthEnabled() in src/utils/auth.ts (line ~111)
# → returns false if external API key is detected
# 2. isClaudeAISubscriber() in src/utils/auth.ts (line ~1715)
# → checks OAuth tokens for user:inference scope (never reached if #1 is false)
# 3. getAnthropicApiKey() in src/utils/auth.ts (line ~201)
# → resolves API key from env/keychain/config
#
# If you needed to FORCE bypass OAuth in all cases (e.g. for testing the
# OAuth code paths themselves), you could:
# - Use --bare flag (sets CLAUDE_CODE_SIMPLE=1, disables OAuth in isBareMode())
# - Set CLAUDE_CODE_USE_BEDROCK=true + CLAUDE_CODE_SKIP_BEDROCK_AUTH=true
# (routes around OAuth entirely but creates a Bedrock-shaped client)
# - Directly modify isAnthropicAuthEnabled() to return false (not recommended
# for production)
#
# Bottom line: export ANTHROPIC_API_KEY="sk-ant-..." is sufficient for dev.
# =============================================================================


16 changes: 16 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Global fallback — any unmatched file requires review from a core maintainer
* @nirholas

# Web frontend
/web/ @nirholas

# MCP server
/mcp-server/ @nirholas

# CI/CD infrastructure — changes need extra scrutiny
/.github/ @nirholas
/docker/ @nirholas
/scripts/ @nirholas

# Core CLI source
/src/ @nirholas
Loading