patchwork-os 0.2.0-alpha.0
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/LICENSE +21 -0
- package/README.bridge.md +352 -0
- package/README.md +72 -0
- package/deploy/README.md +172 -0
- package/deploy/bootstrap-new-vps.sh +364 -0
- package/deploy/claude-ide-bridge.service.template +67 -0
- package/deploy/claude-ide-bridge@.service +31 -0
- package/deploy/ecosystem.config.js.example +36 -0
- package/deploy/install-vps-service.sh +240 -0
- package/deploy/nginx-claude-bridge.conf.template +129 -0
- package/dist/activityLog.d.ts +112 -0
- package/dist/activityLog.js +399 -0
- package/dist/activityLog.js.map +1 -0
- package/dist/activityTypes.d.ts +28 -0
- package/dist/activityTypes.js +9 -0
- package/dist/activityTypes.js.map +1 -0
- package/dist/adapters/base.d.ts +78 -0
- package/dist/adapters/base.js +14 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude.d.ts +18 -0
- package/dist/adapters/claude.js +276 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/gemini.d.ts +17 -0
- package/dist/adapters/gemini.js +218 -0
- package/dist/adapters/gemini.js.map +1 -0
- package/dist/adapters/grok.d.ts +7 -0
- package/dist/adapters/grok.js +21 -0
- package/dist/adapters/grok.js.map +1 -0
- package/dist/adapters/index.d.ts +5 -0
- package/dist/adapters/index.js +37 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/local.d.ts +7 -0
- package/dist/adapters/local.js +22 -0
- package/dist/adapters/local.js.map +1 -0
- package/dist/adapters/openai.d.ts +22 -0
- package/dist/adapters/openai.js +284 -0
- package/dist/adapters/openai.js.map +1 -0
- package/dist/adapters/sse.d.ts +13 -0
- package/dist/adapters/sse.js +58 -0
- package/dist/adapters/sse.js.map +1 -0
- package/dist/analyticsAggregator.d.ts +28 -0
- package/dist/analyticsAggregator.js +133 -0
- package/dist/analyticsAggregator.js.map +1 -0
- package/dist/analyticsPrefs.d.ts +9 -0
- package/dist/analyticsPrefs.js +50 -0
- package/dist/analyticsPrefs.js.map +1 -0
- package/dist/analyticsSend.d.ts +12 -0
- package/dist/analyticsSend.js +34 -0
- package/dist/analyticsSend.js.map +1 -0
- package/dist/approvalHttp.d.ts +46 -0
- package/dist/approvalHttp.js +370 -0
- package/dist/approvalHttp.js.map +1 -0
- package/dist/approvalQueue.d.ts +49 -0
- package/dist/approvalQueue.js +84 -0
- package/dist/approvalQueue.js.map +1 -0
- package/dist/automation.d.ts +675 -0
- package/dist/automation.js +1038 -0
- package/dist/automation.js.map +1 -0
- package/dist/bridge.d.ts +85 -0
- package/dist/bridge.js +1535 -0
- package/dist/bridge.js.map +1 -0
- package/dist/bridgeLockDiscovery.d.ts +11 -0
- package/dist/bridgeLockDiscovery.js +49 -0
- package/dist/bridgeLockDiscovery.js.map +1 -0
- package/dist/bridgeToken.d.ts +22 -0
- package/dist/bridgeToken.js +114 -0
- package/dist/bridgeToken.js.map +1 -0
- package/dist/bridgeToolsRules.d.ts +20 -0
- package/dist/bridgeToolsRules.js +79 -0
- package/dist/bridgeToolsRules.js.map +1 -0
- package/dist/ccPermissions.d.ts +59 -0
- package/dist/ccPermissions.js +163 -0
- package/dist/ccPermissions.js.map +1 -0
- package/dist/claudeDriver.d.ts +129 -0
- package/dist/claudeDriver.js +459 -0
- package/dist/claudeDriver.js.map +1 -0
- package/dist/claudeMdPatch.d.ts +29 -0
- package/dist/claudeMdPatch.js +164 -0
- package/dist/claudeMdPatch.js.map +1 -0
- package/dist/claudeOrchestrator.d.ts +171 -0
- package/dist/claudeOrchestrator.js +591 -0
- package/dist/claudeOrchestrator.js.map +1 -0
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +158 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/marketplace.d.ts +11 -0
- package/dist/commands/marketplace.js +120 -0
- package/dist/commands/marketplace.js.map +1 -0
- package/dist/commands/patchworkInit.d.ts +14 -0
- package/dist/commands/patchworkInit.js +155 -0
- package/dist/commands/patchworkInit.js.map +1 -0
- package/dist/commands/task.d.ts +14 -0
- package/dist/commands/task.js +289 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/tokenEfficiency.d.ts +9 -0
- package/dist/commands/tokenEfficiency.js +211 -0
- package/dist/commands/tokenEfficiency.js.map +1 -0
- package/dist/commands/tools.d.ts +28 -0
- package/dist/commands/tools.js +326 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commitIssueLinkLog.d.ts +77 -0
- package/dist/commitIssueLinkLog.js +142 -0
- package/dist/commitIssueLinkLog.js.map +1 -0
- package/dist/companions/registry.d.ts +12 -0
- package/dist/companions/registry.js +71 -0
- package/dist/companions/registry.js.map +1 -0
- package/dist/config.d.ts +105 -0
- package/dist/config.js +720 -0
- package/dist/config.js.map +1 -0
- package/dist/crypto.d.ts +16 -0
- package/dist/crypto.js +34 -0
- package/dist/crypto.js.map +1 -0
- package/dist/dashboard.d.ts +12 -0
- package/dist/dashboard.js +149 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/decisionTraceLog.d.ts +77 -0
- package/dist/decisionTraceLog.js +147 -0
- package/dist/decisionTraceLog.js.map +1 -0
- package/dist/errors.d.ts +32 -0
- package/dist/errors.js +34 -0
- package/dist/errors.js.map +1 -0
- package/dist/extensionClient.d.ts +279 -0
- package/dist/extensionClient.js +1253 -0
- package/dist/extensionClient.js.map +1 -0
- package/dist/fileLock.d.ts +36 -0
- package/dist/fileLock.js +121 -0
- package/dist/fileLock.js.map +1 -0
- package/dist/fp/activityAnalytics.d.ts +39 -0
- package/dist/fp/activityAnalytics.js +111 -0
- package/dist/fp/activityAnalytics.js.map +1 -0
- package/dist/fp/async.d.ts +48 -0
- package/dist/fp/async.js +60 -0
- package/dist/fp/async.js.map +1 -0
- package/dist/fp/automationInterpreter.d.ts +37 -0
- package/dist/fp/automationInterpreter.js +523 -0
- package/dist/fp/automationInterpreter.js.map +1 -0
- package/dist/fp/automationProgram.d.ts +89 -0
- package/dist/fp/automationProgram.js +29 -0
- package/dist/fp/automationProgram.js.map +1 -0
- package/dist/fp/automationState.d.ts +135 -0
- package/dist/fp/automationState.js +206 -0
- package/dist/fp/automationState.js.map +1 -0
- package/dist/fp/automationUtils.d.ts +31 -0
- package/dist/fp/automationUtils.js +61 -0
- package/dist/fp/automationUtils.js.map +1 -0
- package/dist/fp/brandedTypes.d.ts +32 -0
- package/dist/fp/brandedTypes.js +41 -0
- package/dist/fp/brandedTypes.js.map +1 -0
- package/dist/fp/commandDescription.d.ts +18 -0
- package/dist/fp/commandDescription.js +125 -0
- package/dist/fp/commandDescription.js.map +1 -0
- package/dist/fp/extensionSnapshot.d.ts +10 -0
- package/dist/fp/extensionSnapshot.js +14 -0
- package/dist/fp/extensionSnapshot.js.map +1 -0
- package/dist/fp/index.d.ts +8 -0
- package/dist/fp/index.js +9 -0
- package/dist/fp/index.js.map +1 -0
- package/dist/fp/interpreterContext.d.ts +69 -0
- package/dist/fp/interpreterContext.js +56 -0
- package/dist/fp/interpreterContext.js.map +1 -0
- package/dist/fp/policyParser.d.ts +16 -0
- package/dist/fp/policyParser.js +334 -0
- package/dist/fp/policyParser.js.map +1 -0
- package/dist/fp/result.d.ts +38 -0
- package/dist/fp/result.js +57 -0
- package/dist/fp/result.js.map +1 -0
- package/dist/fp/tokenBucket.d.ts +27 -0
- package/dist/fp/tokenBucket.js +36 -0
- package/dist/fp/tokenBucket.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1465 -0
- package/dist/index.js.map +1 -0
- package/dist/instructionsUtils.d.ts +17 -0
- package/dist/instructionsUtils.js +38 -0
- package/dist/instructionsUtils.js.map +1 -0
- package/dist/lockfile.d.ts +16 -0
- package/dist/lockfile.js +172 -0
- package/dist/lockfile.js.map +1 -0
- package/dist/logger.d.ts +16 -0
- package/dist/logger.js +68 -0
- package/dist/logger.js.map +1 -0
- package/dist/oauth.d.ts +105 -0
- package/dist/oauth.js +880 -0
- package/dist/oauth.js.map +1 -0
- package/dist/orchestrator/childBridgeClient.d.ts +33 -0
- package/dist/orchestrator/childBridgeClient.js +321 -0
- package/dist/orchestrator/childBridgeClient.js.map +1 -0
- package/dist/orchestrator/childBridgeRegistry.d.ts +67 -0
- package/dist/orchestrator/childBridgeRegistry.js +297 -0
- package/dist/orchestrator/childBridgeRegistry.js.map +1 -0
- package/dist/orchestrator/index.d.ts +3 -0
- package/dist/orchestrator/index.js +3 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestratorBridge.d.ts +32 -0
- package/dist/orchestrator/orchestratorBridge.js +412 -0
- package/dist/orchestrator/orchestratorBridge.js.map +1 -0
- package/dist/orchestrator/orchestratorConfig.d.ts +11 -0
- package/dist/orchestrator/orchestratorConfig.js +85 -0
- package/dist/orchestrator/orchestratorConfig.js.map +1 -0
- package/dist/orchestrator/orchestratorTools.d.ts +16 -0
- package/dist/orchestrator/orchestratorTools.js +272 -0
- package/dist/orchestrator/orchestratorTools.js.map +1 -0
- package/dist/patchworkCli.d.ts +15 -0
- package/dist/patchworkCli.js +41 -0
- package/dist/patchworkCli.js.map +1 -0
- package/dist/patchworkConfig.d.ts +28 -0
- package/dist/patchworkConfig.js +30 -0
- package/dist/patchworkConfig.js.map +1 -0
- package/dist/plugin.d.ts +106 -0
- package/dist/plugin.js +31 -0
- package/dist/plugin.js.map +1 -0
- package/dist/pluginLoader.d.ts +44 -0
- package/dist/pluginLoader.js +357 -0
- package/dist/pluginLoader.js.map +1 -0
- package/dist/pluginWatcher.d.ts +24 -0
- package/dist/pluginWatcher.js +139 -0
- package/dist/pluginWatcher.js.map +1 -0
- package/dist/preToolUseHook.d.ts +10 -0
- package/dist/preToolUseHook.js +57 -0
- package/dist/preToolUseHook.js.map +1 -0
- package/dist/probe.d.ts +35 -0
- package/dist/probe.js +143 -0
- package/dist/probe.js.map +1 -0
- package/dist/prompts.d.ts +27 -0
- package/dist/prompts.js +1680 -0
- package/dist/prompts.js.map +1 -0
- package/dist/quickTaskPresets.d.ts +64 -0
- package/dist/quickTaskPresets.js +156 -0
- package/dist/quickTaskPresets.js.map +1 -0
- package/dist/recipes/compiler.d.ts +44 -0
- package/dist/recipes/compiler.js +140 -0
- package/dist/recipes/compiler.js.map +1 -0
- package/dist/recipes/installer.d.ts +25 -0
- package/dist/recipes/installer.js +62 -0
- package/dist/recipes/installer.js.map +1 -0
- package/dist/recipes/parser.d.ts +18 -0
- package/dist/recipes/parser.js +160 -0
- package/dist/recipes/parser.js.map +1 -0
- package/dist/recipes/scheduler.d.ts +45 -0
- package/dist/recipes/scheduler.js +110 -0
- package/dist/recipes/scheduler.js.map +1 -0
- package/dist/recipes/schema.d.ts +71 -0
- package/dist/recipes/schema.js +11 -0
- package/dist/recipes/schema.js.map +1 -0
- package/dist/recipesHttp.d.ts +63 -0
- package/dist/recipesHttp.js +183 -0
- package/dist/recipesHttp.js.map +1 -0
- package/dist/resources.d.ts +33 -0
- package/dist/resources.js +266 -0
- package/dist/resources.js.map +1 -0
- package/dist/riskTier.d.ts +40 -0
- package/dist/riskTier.js +142 -0
- package/dist/riskTier.js.map +1 -0
- package/dist/runLog.d.ts +90 -0
- package/dist/runLog.js +143 -0
- package/dist/runLog.js.map +1 -0
- package/dist/server.d.ts +160 -0
- package/dist/server.js +1244 -0
- package/dist/server.js.map +1 -0
- package/dist/sessionCheckpoint.d.ts +37 -0
- package/dist/sessionCheckpoint.js +123 -0
- package/dist/sessionCheckpoint.js.map +1 -0
- package/dist/streamableHttp.d.ts +86 -0
- package/dist/streamableHttp.js +702 -0
- package/dist/streamableHttp.js.map +1 -0
- package/dist/telemetry.d.ts +18 -0
- package/dist/telemetry.js +95 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools/activityLog.d.ts +140 -0
- package/dist/tools/activityLog.js +204 -0
- package/dist/tools/activityLog.js.map +1 -0
- package/dist/tools/auditDependencies.d.ts +67 -0
- package/dist/tools/auditDependencies.js +298 -0
- package/dist/tools/auditDependencies.js.map +1 -0
- package/dist/tools/batchLsp.d.ts +262 -0
- package/dist/tools/batchLsp.js +328 -0
- package/dist/tools/batchLsp.js.map +1 -0
- package/dist/tools/blame-utils.d.ts +30 -0
- package/dist/tools/blame-utils.js +60 -0
- package/dist/tools/blame-utils.js.map +1 -0
- package/dist/tools/bridgeDoctor.d.ts +78 -0
- package/dist/tools/bridgeDoctor.js +542 -0
- package/dist/tools/bridgeDoctor.js.map +1 -0
- package/dist/tools/bridgeStatus.d.ts +122 -0
- package/dist/tools/bridgeStatus.js +250 -0
- package/dist/tools/bridgeStatus.js.map +1 -0
- package/dist/tools/cancelClaudeTask.d.ts +48 -0
- package/dist/tools/cancelClaudeTask.js +56 -0
- package/dist/tools/cancelClaudeTask.js.map +1 -0
- package/dist/tools/checkDocumentDirty.d.ts +56 -0
- package/dist/tools/checkDocumentDirty.js +74 -0
- package/dist/tools/checkDocumentDirty.js.map +1 -0
- package/dist/tools/clipboard.d.ts +80 -0
- package/dist/tools/clipboard.js +211 -0
- package/dist/tools/clipboard.js.map +1 -0
- package/dist/tools/closeTabs.d.ts +84 -0
- package/dist/tools/closeTabs.js +97 -0
- package/dist/tools/closeTabs.js.map +1 -0
- package/dist/tools/codeLens.d.ts +50 -0
- package/dist/tools/codeLens.js +47 -0
- package/dist/tools/codeLens.js.map +1 -0
- package/dist/tools/contextBundle.d.ts +75 -0
- package/dist/tools/contextBundle.js +218 -0
- package/dist/tools/contextBundle.js.map +1 -0
- package/dist/tools/createIssueFromAIComment.d.ts +75 -0
- package/dist/tools/createIssueFromAIComment.js +119 -0
- package/dist/tools/createIssueFromAIComment.js.map +1 -0
- package/dist/tools/ctxGetTaskContext.d.ts +103 -0
- package/dist/tools/ctxGetTaskContext.js +274 -0
- package/dist/tools/ctxGetTaskContext.js.map +1 -0
- package/dist/tools/ctxQueryTraces.d.ts +142 -0
- package/dist/tools/ctxQueryTraces.js +194 -0
- package/dist/tools/ctxQueryTraces.js.map +1 -0
- package/dist/tools/ctxSaveTrace.d.ts +87 -0
- package/dist/tools/ctxSaveTrace.js +94 -0
- package/dist/tools/ctxSaveTrace.js.map +1 -0
- package/dist/tools/debug.d.ts +206 -0
- package/dist/tools/debug.js +234 -0
- package/dist/tools/debug.js.map +1 -0
- package/dist/tools/decorations.d.ts +130 -0
- package/dist/tools/decorations.js +160 -0
- package/dist/tools/decorations.js.map +1 -0
- package/dist/tools/detectUnusedCode.d.ts +78 -0
- package/dist/tools/detectUnusedCode.js +173 -0
- package/dist/tools/detectUnusedCode.js.map +1 -0
- package/dist/tools/documentLinks.d.ts +62 -0
- package/dist/tools/documentLinks.js +55 -0
- package/dist/tools/documentLinks.js.map +1 -0
- package/dist/tools/editText.d.ts +108 -0
- package/dist/tools/editText.js +318 -0
- package/dist/tools/editText.js.map +1 -0
- package/dist/tools/enrichCommit.d.ts +89 -0
- package/dist/tools/enrichCommit.js +201 -0
- package/dist/tools/enrichCommit.js.map +1 -0
- package/dist/tools/enrichStackTrace.d.ts +121 -0
- package/dist/tools/enrichStackTrace.js +194 -0
- package/dist/tools/enrichStackTrace.js.map +1 -0
- package/dist/tools/explainDiagnostic.d.ts +137 -0
- package/dist/tools/explainDiagnostic.js +230 -0
- package/dist/tools/explainDiagnostic.js.map +1 -0
- package/dist/tools/explainSymbol.d.ts +119 -0
- package/dist/tools/explainSymbol.js +177 -0
- package/dist/tools/explainSymbol.js.map +1 -0
- package/dist/tools/fileOperations.d.ts +186 -0
- package/dist/tools/fileOperations.js +330 -0
- package/dist/tools/fileOperations.js.map +1 -0
- package/dist/tools/fileWatcher.d.ts +107 -0
- package/dist/tools/fileWatcher.js +121 -0
- package/dist/tools/fileWatcher.js.map +1 -0
- package/dist/tools/findFiles.d.ts +65 -0
- package/dist/tools/findFiles.js +142 -0
- package/dist/tools/findFiles.js.map +1 -0
- package/dist/tools/findRelatedTests.d.ts +83 -0
- package/dist/tools/findRelatedTests.js +196 -0
- package/dist/tools/findRelatedTests.js.map +1 -0
- package/dist/tools/fixAllLintErrors.d.ts +66 -0
- package/dist/tools/fixAllLintErrors.js +128 -0
- package/dist/tools/fixAllLintErrors.js.map +1 -0
- package/dist/tools/foldingRanges.d.ts +50 -0
- package/dist/tools/foldingRanges.js +51 -0
- package/dist/tools/foldingRanges.js.map +1 -0
- package/dist/tools/formatAndSave.d.ts +57 -0
- package/dist/tools/formatAndSave.js +87 -0
- package/dist/tools/formatAndSave.js.map +1 -0
- package/dist/tools/formatDocument.d.ts +61 -0
- package/dist/tools/formatDocument.js +144 -0
- package/dist/tools/formatDocument.js.map +1 -0
- package/dist/tools/generateAPIDocumentation.d.ts +62 -0
- package/dist/tools/generateAPIDocumentation.js +249 -0
- package/dist/tools/generateAPIDocumentation.js.map +1 -0
- package/dist/tools/generateTests.d.ts +75 -0
- package/dist/tools/generateTests.js +226 -0
- package/dist/tools/generateTests.js.map +1 -0
- package/dist/tools/getAIComments.d.ts +79 -0
- package/dist/tools/getAIComments.js +93 -0
- package/dist/tools/getAIComments.js.map +1 -0
- package/dist/tools/getAnalyticsReport.d.ts +102 -0
- package/dist/tools/getAnalyticsReport.js +137 -0
- package/dist/tools/getAnalyticsReport.js.map +1 -0
- package/dist/tools/getArchitectureContext.d.ts +85 -0
- package/dist/tools/getArchitectureContext.js +135 -0
- package/dist/tools/getArchitectureContext.js.map +1 -0
- package/dist/tools/getBufferContent.d.ts +80 -0
- package/dist/tools/getBufferContent.js +207 -0
- package/dist/tools/getBufferContent.js.map +1 -0
- package/dist/tools/getChangeImpact.d.ts +76 -0
- package/dist/tools/getChangeImpact.js +184 -0
- package/dist/tools/getChangeImpact.js.map +1 -0
- package/dist/tools/getClaudeTaskStatus.d.ts +87 -0
- package/dist/tools/getClaudeTaskStatus.js +89 -0
- package/dist/tools/getClaudeTaskStatus.js.map +1 -0
- package/dist/tools/getCodeCoverage.d.ts +86 -0
- package/dist/tools/getCodeCoverage.js +237 -0
- package/dist/tools/getCodeCoverage.js.map +1 -0
- package/dist/tools/getCommitsForIssue.d.ts +98 -0
- package/dist/tools/getCommitsForIssue.js +106 -0
- package/dist/tools/getCommitsForIssue.js.map +1 -0
- package/dist/tools/getCurrentSelection.d.ts +123 -0
- package/dist/tools/getCurrentSelection.js +113 -0
- package/dist/tools/getCurrentSelection.js.map +1 -0
- package/dist/tools/getDebugState.d.ts +140 -0
- package/dist/tools/getDebugState.js +109 -0
- package/dist/tools/getDebugState.js.map +1 -0
- package/dist/tools/getDependencyTree.d.ts +59 -0
- package/dist/tools/getDependencyTree.js +207 -0
- package/dist/tools/getDependencyTree.js.map +1 -0
- package/dist/tools/getDiagnostics.d.ts +108 -0
- package/dist/tools/getDiagnostics.js +371 -0
- package/dist/tools/getDiagnostics.js.map +1 -0
- package/dist/tools/getDiffFromHandoff.d.ts +89 -0
- package/dist/tools/getDiffFromHandoff.js +163 -0
- package/dist/tools/getDiffFromHandoff.js.map +1 -0
- package/dist/tools/getDocumentSymbols.d.ts +74 -0
- package/dist/tools/getDocumentSymbols.js +177 -0
- package/dist/tools/getDocumentSymbols.js.map +1 -0
- package/dist/tools/getFileTree.d.ts +66 -0
- package/dist/tools/getFileTree.js +131 -0
- package/dist/tools/getFileTree.js.map +1 -0
- package/dist/tools/getGitDiff.d.ts +50 -0
- package/dist/tools/getGitDiff.js +73 -0
- package/dist/tools/getGitDiff.js.map +1 -0
- package/dist/tools/getGitHotspots.d.ts +88 -0
- package/dist/tools/getGitHotspots.js +145 -0
- package/dist/tools/getGitHotspots.js.map +1 -0
- package/dist/tools/getGitLog.d.ts +62 -0
- package/dist/tools/getGitLog.js +87 -0
- package/dist/tools/getGitLog.js.map +1 -0
- package/dist/tools/getGitStatus.d.ts +72 -0
- package/dist/tools/getGitStatus.js +126 -0
- package/dist/tools/getGitStatus.js.map +1 -0
- package/dist/tools/getImportTree.d.ts +73 -0
- package/dist/tools/getImportTree.js +223 -0
- package/dist/tools/getImportTree.js.map +1 -0
- package/dist/tools/getImportedSignatures.d.ts +62 -0
- package/dist/tools/getImportedSignatures.js +255 -0
- package/dist/tools/getImportedSignatures.js.map +1 -0
- package/dist/tools/getOpenEditors.d.ts +62 -0
- package/dist/tools/getOpenEditors.js +126 -0
- package/dist/tools/getOpenEditors.js.map +1 -0
- package/dist/tools/getPRTemplate.d.ts +68 -0
- package/dist/tools/getPRTemplate.js +187 -0
- package/dist/tools/getPRTemplate.js.map +1 -0
- package/dist/tools/getProjectContext.d.ts +114 -0
- package/dist/tools/getProjectContext.js +344 -0
- package/dist/tools/getProjectContext.js.map +1 -0
- package/dist/tools/getProjectInfo.d.ts +51 -0
- package/dist/tools/getProjectInfo.js +325 -0
- package/dist/tools/getProjectInfo.js.map +1 -0
- package/dist/tools/getSecurityAdvisories.d.ts +105 -0
- package/dist/tools/getSecurityAdvisories.js +472 -0
- package/dist/tools/getSecurityAdvisories.js.map +1 -0
- package/dist/tools/getSessionUsage.d.ts +58 -0
- package/dist/tools/getSessionUsage.js +57 -0
- package/dist/tools/getSessionUsage.js.map +1 -0
- package/dist/tools/getSymbolHistory.d.ts +157 -0
- package/dist/tools/getSymbolHistory.js +256 -0
- package/dist/tools/getSymbolHistory.js.map +1 -0
- package/dist/tools/getToolCapabilities.d.ts +69 -0
- package/dist/tools/getToolCapabilities.js +298 -0
- package/dist/tools/getToolCapabilities.js.map +1 -0
- package/dist/tools/getTypeSignature.d.ts +70 -0
- package/dist/tools/getTypeSignature.js +132 -0
- package/dist/tools/getTypeSignature.js.map +1 -0
- package/dist/tools/getWorkspaceFolders.d.ts +58 -0
- package/dist/tools/getWorkspaceFolders.js +69 -0
- package/dist/tools/getWorkspaceFolders.js.map +1 -0
- package/dist/tools/getWorkspaceSettings.d.ts +44 -0
- package/dist/tools/getWorkspaceSettings.js +70 -0
- package/dist/tools/getWorkspaceSettings.js.map +1 -0
- package/dist/tools/git-utils.d.ts +16 -0
- package/dist/tools/git-utils.js +46 -0
- package/dist/tools/git-utils.js.map +1 -0
- package/dist/tools/gitHistory.d.ts +110 -0
- package/dist/tools/gitHistory.js +167 -0
- package/dist/tools/gitHistory.js.map +1 -0
- package/dist/tools/gitWrite.d.ts +612 -0
- package/dist/tools/gitWrite.js +983 -0
- package/dist/tools/gitWrite.js.map +1 -0
- package/dist/tools/github/actions.d.ts +152 -0
- package/dist/tools/github/actions.js +195 -0
- package/dist/tools/github/actions.js.map +1 -0
- package/dist/tools/github/index.d.ts +3 -0
- package/dist/tools/github/index.js +4 -0
- package/dist/tools/github/index.js.map +1 -0
- package/dist/tools/github/issues.d.ts +281 -0
- package/dist/tools/github/issues.js +340 -0
- package/dist/tools/github/issues.js.map +1 -0
- package/dist/tools/github/pr.d.ts +433 -0
- package/dist/tools/github/pr.js +588 -0
- package/dist/tools/github/pr.js.map +1 -0
- package/dist/tools/github/shared.d.ts +4 -0
- package/dist/tools/github/shared.js +12 -0
- package/dist/tools/github/shared.js.map +1 -0
- package/dist/tools/handoffNote.d.ts +106 -0
- package/dist/tools/handoffNote.js +232 -0
- package/dist/tools/handoffNote.js.map +1 -0
- package/dist/tools/headless/lspClient.d.ts +26 -0
- package/dist/tools/headless/lspClient.js +221 -0
- package/dist/tools/headless/lspClient.js.map +1 -0
- package/dist/tools/headless/lspFallback.d.ts +28 -0
- package/dist/tools/headless/lspFallback.js +122 -0
- package/dist/tools/headless/lspFallback.js.map +1 -0
- package/dist/tools/hoverAtCursor.d.ts +54 -0
- package/dist/tools/hoverAtCursor.js +68 -0
- package/dist/tools/hoverAtCursor.js.map +1 -0
- package/dist/tools/httpClient.d.ts +141 -0
- package/dist/tools/httpClient.js +486 -0
- package/dist/tools/httpClient.js.map +1 -0
- package/dist/tools/index.d.ts +49 -0
- package/dist/tools/index.js +672 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inlayHints.d.ts +81 -0
- package/dist/tools/inlayHints.js +76 -0
- package/dist/tools/inlayHints.js.map +1 -0
- package/dist/tools/issueRefs.d.ts +14 -0
- package/dist/tools/issueRefs.js +27 -0
- package/dist/tools/issueRefs.js.map +1 -0
- package/dist/tools/jumpToFirstError.d.ts +63 -0
- package/dist/tools/jumpToFirstError.js +124 -0
- package/dist/tools/jumpToFirstError.js.map +1 -0
- package/dist/tools/launchQuickTask.d.ts +76 -0
- package/dist/tools/launchQuickTask.js +170 -0
- package/dist/tools/launchQuickTask.js.map +1 -0
- package/dist/tools/linters/biome.d.ts +2 -0
- package/dist/tools/linters/biome.js +44 -0
- package/dist/tools/linters/biome.js.map +1 -0
- package/dist/tools/linters/cargo.d.ts +2 -0
- package/dist/tools/linters/cargo.js +45 -0
- package/dist/tools/linters/cargo.js.map +1 -0
- package/dist/tools/linters/eslint.d.ts +2 -0
- package/dist/tools/linters/eslint.js +59 -0
- package/dist/tools/linters/eslint.js.map +1 -0
- package/dist/tools/linters/govet.d.ts +2 -0
- package/dist/tools/linters/govet.js +37 -0
- package/dist/tools/linters/govet.js.map +1 -0
- package/dist/tools/linters/pyright.d.ts +2 -0
- package/dist/tools/linters/pyright.js +34 -0
- package/dist/tools/linters/pyright.js.map +1 -0
- package/dist/tools/linters/ruff.d.ts +2 -0
- package/dist/tools/linters/ruff.js +30 -0
- package/dist/tools/linters/ruff.js.map +1 -0
- package/dist/tools/linters/types.d.ts +16 -0
- package/dist/tools/linters/types.js +2 -0
- package/dist/tools/linters/types.js.map +1 -0
- package/dist/tools/linters/typescript.d.ts +2 -0
- package/dist/tools/linters/typescript.js +38 -0
- package/dist/tools/linters/typescript.js.map +1 -0
- package/dist/tools/listClaudeTasks.d.ts +84 -0
- package/dist/tools/listClaudeTasks.js +88 -0
- package/dist/tools/listClaudeTasks.js.map +1 -0
- package/dist/tools/listTerminals.d.ts +55 -0
- package/dist/tools/listTerminals.js +78 -0
- package/dist/tools/listTerminals.js.map +1 -0
- package/dist/tools/lsp.d.ts +1086 -0
- package/dist/tools/lsp.js +1339 -0
- package/dist/tools/lsp.js.map +1 -0
- package/dist/tools/navigateToSymbolByName.d.ts +56 -0
- package/dist/tools/navigateToSymbolByName.js +170 -0
- package/dist/tools/navigateToSymbolByName.js.map +1 -0
- package/dist/tools/openDiff.d.ts +66 -0
- package/dist/tools/openDiff.js +126 -0
- package/dist/tools/openDiff.js.map +1 -0
- package/dist/tools/openFile.d.ts +69 -0
- package/dist/tools/openFile.js +129 -0
- package/dist/tools/openFile.js.map +1 -0
- package/dist/tools/openInBrowser.d.ts +55 -0
- package/dist/tools/openInBrowser.js +129 -0
- package/dist/tools/openInBrowser.js.map +1 -0
- package/dist/tools/organizeImports.d.ts +56 -0
- package/dist/tools/organizeImports.js +115 -0
- package/dist/tools/organizeImports.js.map +1 -0
- package/dist/tools/performanceReport.d.ts +133 -0
- package/dist/tools/performanceReport.js +218 -0
- package/dist/tools/performanceReport.js.map +1 -0
- package/dist/tools/planPersistence.d.ts +306 -0
- package/dist/tools/planPersistence.js +485 -0
- package/dist/tools/planPersistence.js.map +1 -0
- package/dist/tools/previewEdit.d.ts +107 -0
- package/dist/tools/previewEdit.js +270 -0
- package/dist/tools/previewEdit.js.map +1 -0
- package/dist/tools/recentTracesDigest.d.ts +35 -0
- package/dist/tools/recentTracesDigest.js +98 -0
- package/dist/tools/recentTracesDigest.js.map +1 -0
- package/dist/tools/refactorAnalyze.d.ts +78 -0
- package/dist/tools/refactorAnalyze.js +141 -0
- package/dist/tools/refactorAnalyze.js.map +1 -0
- package/dist/tools/refactorExtractFunction.d.ts +52 -0
- package/dist/tools/refactorExtractFunction.js +121 -0
- package/dist/tools/refactorExtractFunction.js.map +1 -0
- package/dist/tools/refactorPreview.d.ts +75 -0
- package/dist/tools/refactorPreview.js +93 -0
- package/dist/tools/refactorPreview.js.map +1 -0
- package/dist/tools/replaceBlock.d.ts +62 -0
- package/dist/tools/replaceBlock.js +125 -0
- package/dist/tools/replaceBlock.js.map +1 -0
- package/dist/tools/resumeClaudeTask.d.ts +75 -0
- package/dist/tools/resumeClaudeTask.js +149 -0
- package/dist/tools/resumeClaudeTask.js.map +1 -0
- package/dist/tools/runClaudeTask.d.ts +97 -0
- package/dist/tools/runClaudeTask.js +224 -0
- package/dist/tools/runClaudeTask.js.map +1 -0
- package/dist/tools/runCommand.d.ts +82 -0
- package/dist/tools/runCommand.js +101 -0
- package/dist/tools/runCommand.js.map +1 -0
- package/dist/tools/runTests.d.ts +146 -0
- package/dist/tools/runTests.js +315 -0
- package/dist/tools/runTests.js.map +1 -0
- package/dist/tools/saveDocument.d.ts +50 -0
- package/dist/tools/saveDocument.js +73 -0
- package/dist/tools/saveDocument.js.map +1 -0
- package/dist/tools/screenshot.d.ts +23 -0
- package/dist/tools/screenshot.js +43 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/screenshotAndAnnotate.d.ts +103 -0
- package/dist/tools/screenshotAndAnnotate.js +192 -0
- package/dist/tools/screenshotAndAnnotate.js.map +1 -0
- package/dist/tools/searchAndReplace.d.ts +108 -0
- package/dist/tools/searchAndReplace.js +281 -0
- package/dist/tools/searchAndReplace.js.map +1 -0
- package/dist/tools/searchTools.d.ts +61 -0
- package/dist/tools/searchTools.js +85 -0
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/searchWorkspace.d.ts +99 -0
- package/dist/tools/searchWorkspace.js +189 -0
- package/dist/tools/searchWorkspace.js.map +1 -0
- package/dist/tools/selectionRanges.d.ts +58 -0
- package/dist/tools/selectionRanges.js +61 -0
- package/dist/tools/selectionRanges.js.map +1 -0
- package/dist/tools/semanticTokens.d.ts +87 -0
- package/dist/tools/semanticTokens.js +86 -0
- package/dist/tools/semanticTokens.js.map +1 -0
- package/dist/tools/setActiveWorkspaceFolder.d.ts +41 -0
- package/dist/tools/setActiveWorkspaceFolder.js +38 -0
- package/dist/tools/setActiveWorkspaceFolder.js.map +1 -0
- package/dist/tools/signatureHelp.d.ts +86 -0
- package/dist/tools/signatureHelp.js +79 -0
- package/dist/tools/signatureHelp.js.map +1 -0
- package/dist/tools/spawnWorkspace.d.ts +103 -0
- package/dist/tools/spawnWorkspace.js +268 -0
- package/dist/tools/spawnWorkspace.js.map +1 -0
- package/dist/tools/stackTraceParser.d.ts +43 -0
- package/dist/tools/stackTraceParser.js +139 -0
- package/dist/tools/stackTraceParser.js.map +1 -0
- package/dist/tools/terminal.d.ts +352 -0
- package/dist/tools/terminal.js +670 -0
- package/dist/tools/terminal.js.map +1 -0
- package/dist/tools/testRunners/cargoTest.d.ts +2 -0
- package/dist/tools/testRunners/cargoTest.js +129 -0
- package/dist/tools/testRunners/cargoTest.js.map +1 -0
- package/dist/tools/testRunners/goTest.d.ts +2 -0
- package/dist/tools/testRunners/goTest.js +108 -0
- package/dist/tools/testRunners/goTest.js.map +1 -0
- package/dist/tools/testRunners/pytest.d.ts +2 -0
- package/dist/tools/testRunners/pytest.js +135 -0
- package/dist/tools/testRunners/pytest.js.map +1 -0
- package/dist/tools/testRunners/types.d.ts +18 -0
- package/dist/tools/testRunners/types.js +2 -0
- package/dist/tools/testRunners/types.js.map +1 -0
- package/dist/tools/testRunners/vitestJest.d.ts +3 -0
- package/dist/tools/testRunners/vitestJest.js +215 -0
- package/dist/tools/testRunners/vitestJest.js.map +1 -0
- package/dist/tools/testTraceToSource.d.ts +80 -0
- package/dist/tools/testTraceToSource.js +206 -0
- package/dist/tools/testTraceToSource.js.map +1 -0
- package/dist/tools/transaction.d.ts +243 -0
- package/dist/tools/transaction.js +309 -0
- package/dist/tools/transaction.js.map +1 -0
- package/dist/tools/typeHierarchy.d.ts +77 -0
- package/dist/tools/typeHierarchy.js +86 -0
- package/dist/tools/typeHierarchy.js.map +1 -0
- package/dist/tools/utils.d.ts +124 -0
- package/dist/tools/utils.js +566 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tools/vscodeCommands.d.ts +90 -0
- package/dist/tools/vscodeCommands.js +112 -0
- package/dist/tools/vscodeCommands.js.map +1 -0
- package/dist/tools/vscodeTasks.d.ts +102 -0
- package/dist/tools/vscodeTasks.js +110 -0
- package/dist/tools/vscodeTasks.js.map +1 -0
- package/dist/tools/watchDiagnostics.d.ts +64 -0
- package/dist/tools/watchDiagnostics.js +270 -0
- package/dist/tools/watchDiagnostics.js.map +1 -0
- package/dist/tools/workspaceSettings.d.ts +57 -0
- package/dist/tools/workspaceSettings.js +80 -0
- package/dist/tools/workspaceSettings.js.map +1 -0
- package/dist/transport.d.ts +207 -0
- package/dist/transport.js +1272 -0
- package/dist/transport.js.map +1 -0
- package/dist/version.d.ts +13 -0
- package/dist/version.js +31 -0
- package/dist/version.js.map +1 -0
- package/dist/wsUtils.d.ts +8 -0
- package/dist/wsUtils.js +54 -0
- package/dist/wsUtils.js.map +1 -0
- package/package.json +118 -0
- package/scripts/gen-claude-desktop-config.sh +124 -0
- package/scripts/gen-mcp-config.sh +390 -0
- package/scripts/install-extension.sh +106 -0
- package/scripts/mcp-stdio-shim.cjs +482 -0
- package/scripts/postinstall.mjs +68 -0
- package/scripts/start-all.sh +502 -0
- package/scripts/start-orchestrator.sh +186 -0
- package/scripts/start-remote.sh +126 -0
- package/scripts/start-vps.sh +116 -0
- package/templates/CLAUDE.bridge.md +125 -0
- package/templates/automation-policies/security-first.json +46 -0
- package/templates/automation-policies/strict-lint.json +41 -0
- package/templates/automation-policies/test-driven.json +54 -0
- package/templates/automation-policy.example.json +105 -0
- package/templates/bridge-tools.md +111 -0
- package/templates/dispatch-context.md +33 -0
- package/templates/managed-agent/code-review-agent.md +50 -0
- package/templates/managed-agent/managed-agent-mcp.json +102 -0
- package/templates/recipes/ambient-journal.yaml +11 -0
- package/templates/recipes/daily-status.yaml +21 -0
- package/templates/recipes/lint-on-save.yaml +13 -0
- package/templates/recipes/stale-branches.yaml +18 -0
- package/templates/recipes/watch-failing-tests.yaml +15 -0
- package/templates/scheduled-tasks/dependency-audit/SKILL.md +77 -0
- package/templates/scheduled-tasks/health-check/SKILL.md +73 -0
- package/templates/scheduled-tasks/nightly-review/SKILL.md +69 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Oolab Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.bridge.md
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# Claude IDE Bridge
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/claude-ide-bridge)
|
|
4
|
+
[](https://github.com/Oolab-labs/claude-ide-bridge/actions/workflows/ci.yml)
|
|
5
|
+
[](https://github.com/Oolab-labs/claude-ide-bridge/pkgs/container/claude-ide-bridge)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
**MCP bridge giving Claude Code IDE superpowers: 141 tools for LSP, debugging, git, GitHub, terminals, and more.**
|
|
9
|
+
|
|
10
|
+
A WebSocket bridge between Claude Code CLI and your VS Code extension. Claude sees what your IDE sees — live diagnostics, go-to-definition, call hierarchies, hover types, breakpoints, debugger state — and can act on it: edit files, run tests, commit, open PRs, all without you copy-pasting anything.
|
|
11
|
+
|
|
12
|
+
Works locally, over SSH, in Docker, and on a VPS. Extension is optional — headless mode covers git, terminals, GitHub, and LSP via `typescript-language-server`.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Claude Code ──── bridge ──── VS Code extension ──── your editor state
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
> **See it work in 5 minutes:** save a broken file, Claude notices, diagnoses, proposes a fix — no prompt typed. [Self-healing quickstart →](./docs/self-healing-quickstart.md)
|
|
19
|
+
|
|
20
|
+
https://github.com/user-attachments/assets/a81a8d11-2cc3-46f3-88ad-6a905a221a2c
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
**Prerequisites:** [Claude Code CLI](https://claude.ai/code), Node.js ≥ 20
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# 1. Install the bridge
|
|
28
|
+
npm install -g claude-ide-bridge
|
|
29
|
+
|
|
30
|
+
# 2. One-command setup (installs extension, writes CLAUDE.md, registers MCP server)
|
|
31
|
+
cd /your/project
|
|
32
|
+
claude-ide-bridge init
|
|
33
|
+
|
|
34
|
+
# 3. Start the bridge (full tool set is the default — add --slim for IDE-only)
|
|
35
|
+
claude-ide-bridge --watch
|
|
36
|
+
|
|
37
|
+
# 4. Open Claude Code — bridge connects automatically
|
|
38
|
+
claude --ide
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **Updating?** Use `npm install -g claude-ide-bridge@latest` — `npm update -g` may lag the registry cache after a new release.
|
|
42
|
+
|
|
43
|
+
After `init`, type `/mcp` in Claude Code to confirm the bridge is connected. Type `/ide` to see open files, diagnostics, and editor state.
|
|
44
|
+
|
|
45
|
+
> **One bridge per workspace.** Each project runs its own bridge instance on its own port. Start a separate `claude-ide-bridge --watch` in each directory.
|
|
46
|
+
|
|
47
|
+
### Installing the VS Code extension separately
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
claude-ide-bridge install-extension
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Or search **Claude IDE Bridge** in the VS Code / Cursor / Windsurf marketplace.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Tool Categories
|
|
58
|
+
|
|
59
|
+
| Category | Count | Example tools | Mode |
|
|
60
|
+
|---|---|---|---|
|
|
61
|
+
| LSP & Code Intelligence | 29 | `goToDefinition`, `findReferences`, `getCallHierarchy`, `getHover`, `explainSymbol` | S |
|
|
62
|
+
| Debugging | 6 | `setDebugBreakpoints`, `startDebugging`, `evaluateInDebugger`, `getDebugState` | S |
|
|
63
|
+
| Refactoring | 5 | `refactorAnalyze`, `refactorPreview`, `renameSymbol`, `refactorExtractFunction` | S |
|
|
64
|
+
| Editor State | 8 | `getDiagnostics`, `getDocumentSymbols`, `getOpenEditors`, `contextBundle`, `watchDiagnostics` | S |
|
|
65
|
+
| Git | 12 | `gitAdd`, `gitCommit`, `gitPush`, `getGitStatus`, `getGitDiff`, `gitCheckout`, `gitBlame` | F |
|
|
66
|
+
| GitHub | 5 | `githubCreatePR`, `getPRTemplate`, `getGitHotspots` | F |
|
|
67
|
+
| Files & Search | 10 | `findFiles`, `getFileTree`, `searchWorkspace`, `searchAndReplace`, `createFile`, `editText` | F |
|
|
68
|
+
| Terminal & Shell | 6 | `runInTerminal`, `getTerminalOutput`, `runCommand`, `runVSCodeTask`, `listVSCodeTasks` | F |
|
|
69
|
+
| Claude Orchestration | 5 | `runClaudeTask`, `listClaudeTasks`, `getClaudeTaskStatus`, `cancelClaudeTask` | F |
|
|
70
|
+
| Quality & Analysis | 11 | `getCodeCoverage`, `auditDependencies`, `detectUnusedCode`, `generateTests`, `getSecurityAdvisories` | F |
|
|
71
|
+
|
|
72
|
+
**S = slim (opt-in via `--slim`) · F = full mode (default)**
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Slim vs Full Mode
|
|
77
|
+
|
|
78
|
+
The bridge starts in **full mode** by default (changed in v2.43.0) — all ~140 tools, covering LSP/debugger/refactoring plus git, GitHub, terminal, file tree, and orchestration.
|
|
79
|
+
|
|
80
|
+
Pass `--slim` to restrict to the ~60 IDE-exclusive tools (LSP, debugger, editor state only) — useful when you want Claude to use its native Read/Write/Bash tools for everything else:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
claude-ide-bridge --slim --watch
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Or set permanently in `claude-ide-bridge.config.json`:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{ "fullMode": false }
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Use `--slim` when:**
|
|
93
|
+
- You prefer Claude's native Read/Write/Bash over bridge file/git/HTTP tools
|
|
94
|
+
- Running in a locked-down environment and want to minimize exposed surface
|
|
95
|
+
- You only need LSP navigation, debugger, and editor state signal
|
|
96
|
+
|
|
97
|
+
The `--full` flag is retained as a no-op opt-in for backward compatibility.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Usage Examples
|
|
102
|
+
|
|
103
|
+
### Find every caller of a function
|
|
104
|
+
```
|
|
105
|
+
"Show me everything that calls processPayment()"
|
|
106
|
+
```
|
|
107
|
+
Claude runs `getCallHierarchy` — returns the full incoming call tree with file paths and line numbers, no grep required.
|
|
108
|
+
|
|
109
|
+
### Fix all type errors in the workspace
|
|
110
|
+
```
|
|
111
|
+
"Fix the TypeScript errors in src/api/"
|
|
112
|
+
```
|
|
113
|
+
Claude calls `getDiagnostics` to get live compiler errors, then `editText` to patch each one. No build step needed — diagnostics are live from the language server.
|
|
114
|
+
|
|
115
|
+
### Create a PR from the current branch
|
|
116
|
+
```
|
|
117
|
+
"Push my branch and open a PR against main"
|
|
118
|
+
```
|
|
119
|
+
Claude calls `gitPush`, then `githubCreatePR` — picks up your repo's PR template automatically and pre-fills it from recent commits.
|
|
120
|
+
|
|
121
|
+
### Set a breakpoint and inspect a variable
|
|
122
|
+
```
|
|
123
|
+
"Break on line 42 of auth.ts and tell me what token contains"
|
|
124
|
+
```
|
|
125
|
+
Claude calls `setDebugBreakpoints`, `startDebugging`, then `evaluateInDebugger` — real debugger evaluation, not console.log guessing.
|
|
126
|
+
|
|
127
|
+
### Refactor a symbol safely
|
|
128
|
+
```
|
|
129
|
+
"Rename UserService to AuthService everywhere"
|
|
130
|
+
```
|
|
131
|
+
Claude calls `refactorAnalyze` (checks blast radius and risk), `refactorPreview` (shows every edit before touching a file), then `renameSymbol` — language-server rename, not find-and-replace.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Deployment Options
|
|
136
|
+
|
|
137
|
+
### Local (VS Code / Cursor / Windsurf)
|
|
138
|
+
Standard setup. Extension connects automatically. Full LSP, debugger, and editor state available.
|
|
139
|
+
|
|
140
|
+
### Remote SSH
|
|
141
|
+
VS Code Remote-SSH and Cursor SSH load the extension on the VPS side (`extensionKind: ["workspace"]`). Start the bridge on the remote machine. All ~140 tools work over SSH.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# On the remote machine
|
|
145
|
+
claude-ide-bridge --watch --bind 0.0.0.0
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### VPS + systemd
|
|
149
|
+
Persistent bridge with automatic restarts, fixed auth token, and optional OAuth 2.0 for remote MCP clients (claude.ai, Codex CLI).
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Full provisioning
|
|
153
|
+
bash deploy/bootstrap-new-vps.sh
|
|
154
|
+
|
|
155
|
+
# Or just the service
|
|
156
|
+
bash deploy/install-vps-service.sh
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
See [deploy/README.md](deploy/README.md) and [docs/remote-access.md](docs/remote-access.md).
|
|
160
|
+
|
|
161
|
+
### Docker
|
|
162
|
+
```bash
|
|
163
|
+
docker run -p 3284:3284 ghcr.io/oolab-labs/claude-ide-bridge:latest --bind 0.0.0.0
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Or with Compose:
|
|
167
|
+
```bash
|
|
168
|
+
docker compose up
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Headless image includes `typescript-language-server` and `universal-ctags` for LSP and symbol search without VS Code. See [documents/headless-quickstart.md](documents/headless-quickstart.md).
|
|
172
|
+
|
|
173
|
+
### Launch tasks from a terminal (headless parity)
|
|
174
|
+
|
|
175
|
+
The sidebar's quick-task buttons also work from the CLI — same context-gathering, same prompt-building, same dispatch path:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# 7 presets: fixErrors · refactorFile · addTests · explainCode · optimizePerf · runTests · resumeLastCancelled
|
|
179
|
+
claude-ide-bridge quick-task fix-errors
|
|
180
|
+
claude-ide-bridge quick-task add-tests --json
|
|
181
|
+
|
|
182
|
+
# free-form description (Claude gathers its own context)
|
|
183
|
+
claude-ide-bridge start-task "Refactor the auth module for clarity, keep behaviour identical"
|
|
184
|
+
|
|
185
|
+
# resume prior session from handoff note
|
|
186
|
+
claude-ide-bridge continue-handoff
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Requires `--claude-driver subprocess` on the running bridge. All three subcommands accept `--json`, `--port`, `--source`. Enforces a 5s bridge-global cooldown per preset (shared with the sidebar).
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Automation Hooks
|
|
194
|
+
|
|
195
|
+
Event-driven hooks that trigger Claude tasks automatically — no polling, no manual invocation.
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"hooks": [
|
|
200
|
+
{
|
|
201
|
+
"event": "onDiagnosticsError",
|
|
202
|
+
"prompt": "Fix the type error in {{file}}: {{diagnostics}}",
|
|
203
|
+
"cooldownMs": 30000
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"event": "onFileSave",
|
|
207
|
+
"patterns": ["src/**/*.ts"],
|
|
208
|
+
"prompt": "Run tests for {{file}} and fix any failures"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"event": "onGitCommit",
|
|
212
|
+
"prompt": "Review commit {{hash}}: {{message}}"
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Start with:
|
|
219
|
+
```bash
|
|
220
|
+
claude-ide-bridge --watch --automation --automation-policy ./policy.json --claude-driver subprocess
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**18 hook events:** `onFileSave`, `onFileChanged`, `onDiagnosticsError`, `onDiagnosticsCleared`, `onGitCommit`, `onGitPush`, `onGitPull`, `onBranchCheckout`, `onPullRequest`, `onTestRun`, `onTestPassAfterFailure`, `onPostCompact`, `onInstructionsLoaded`, `onTaskCreated`, `onTaskSuccess`, `onPermissionDenied`, `onCwdChanged`, `onDebugSessionEnd`
|
|
224
|
+
|
|
225
|
+
All hooks support `cooldownMs` (min 5s), `promptName`/`promptArgs` for named prompts, and `when` conditions (`minDiagnosticCount`, `testRunnerLastStatus`). See [docs/automation.md](docs/automation.md).
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Plugin System
|
|
230
|
+
|
|
231
|
+
Extend the bridge with custom MCP tools without forking. Plugins load in-process alongside built-in tools and support hot reload.
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Scaffold a new plugin
|
|
235
|
+
claude-ide-bridge gen-plugin-stub ./my-plugin --name "org/my-plugin" --prefix "myPrefix"
|
|
236
|
+
|
|
237
|
+
# Load it
|
|
238
|
+
claude-ide-bridge --watch --plugin ./my-plugin --plugin-watch
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Publish to npm with keyword `claude-ide-bridge-plugin` — users install by package name:
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
claude-ide-bridge --plugin claude-ide-bridge-my-plugin
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
See [documents/plugin-authoring.md](documents/plugin-authoring.md) for the full manifest schema and entrypoint API.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Companion Marketplace
|
|
252
|
+
|
|
253
|
+
Install curated companion MCP servers directly into your Claude Desktop config:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
claude-ide-bridge marketplace list
|
|
257
|
+
claude-ide-bridge marketplace search memory
|
|
258
|
+
claude-ide-bridge install claude-mem
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
`install` merges the companion into `mcpServers` in your Claude Desktop config atomically and idempotently — no manual JSON editing.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## CLI Reference
|
|
266
|
+
|
|
267
|
+
| Command | What it does |
|
|
268
|
+
|---|---|
|
|
269
|
+
| `claude-ide-bridge init` | One-command setup: install extension + write CLAUDE.md + register MCP server |
|
|
270
|
+
| `claude-ide-bridge --watch` | Start bridge with auto-restart on crash (2s → 30s backoff) |
|
|
271
|
+
| `claude-ide-bridge --slim` | Restrict to ~60 IDE-exclusive tools (default: ~140 full tools) |
|
|
272
|
+
| `claude-ide-bridge install-extension` | Install companion VS Code extension |
|
|
273
|
+
| `claude-ide-bridge gen-claude-md --write` | Add bridge section to existing CLAUDE.md |
|
|
274
|
+
| `claude-ide-bridge print-token` | Print auth token from active lock file |
|
|
275
|
+
| `claude-ide-bridge gen-plugin-stub <dir>` | Scaffold a new plugin |
|
|
276
|
+
| `claude-ide-bridge marketplace list` | List available companion servers |
|
|
277
|
+
| `claude-ide-bridge install <companion>` | Install companion into Claude Desktop config |
|
|
278
|
+
| `claude-ide-bridge notify <Event>` | Post a hook event to a running bridge (for CC hook wiring) |
|
|
279
|
+
| `claude-ide-bridge quick-task <preset>` | Launch a context-aware Claude task from a preset (headless parity with the sidebar) |
|
|
280
|
+
| `claude-ide-bridge start-task "<description>"` | Enqueue a free-form Claude task with workspace context |
|
|
281
|
+
| `claude-ide-bridge continue-handoff` | Resume prior session using the stored handoff note |
|
|
282
|
+
| `claude-ide-bridge start-all` | Launch tmux session with bridge + extension watcher |
|
|
283
|
+
|
|
284
|
+
**Key flags:**
|
|
285
|
+
|
|
286
|
+
| Flag | Default | Description |
|
|
287
|
+
|---|---|---|
|
|
288
|
+
| `--slim` | off | Restrict to IDE-exclusive tools (default: full, ~140 tools) |
|
|
289
|
+
| `--full` | on | No-op (retained for backward compat — full is the default since v2.43.0) |
|
|
290
|
+
| `--watch` | off | Auto-restart on crash |
|
|
291
|
+
| `--bind <host>` | `127.0.0.1` | Bind address (`0.0.0.0` for remote access) |
|
|
292
|
+
| `--port <n>` | auto | Port (auto-detected from lock files) |
|
|
293
|
+
| `--fixed-token <uuid>` | — | Stable auth token across restarts |
|
|
294
|
+
| `--automation` | off | Enable automation hooks |
|
|
295
|
+
| `--automation-policy <path>` | — | Path to policy JSON |
|
|
296
|
+
| `--claude-driver subprocess` | none | Enable Claude subprocess orchestration |
|
|
297
|
+
| `--plugin <path>` | — | Load a plugin (repeatable) |
|
|
298
|
+
| `--plugin-watch` | off | Hot-reload plugins on change |
|
|
299
|
+
| `--issuer-url <url>` | — | Activate OAuth 2.0 mode |
|
|
300
|
+
| `--cors-origin <origin>` | — | Add CORS origin (repeatable) |
|
|
301
|
+
| `--vps` | off | Expand command allowlist for VPS use |
|
|
302
|
+
| `--grace-period <ms>` | 120000 | Session preservation window across disconnects |
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Documentation
|
|
307
|
+
|
|
308
|
+
| File | Description |
|
|
309
|
+
|---|---|
|
|
310
|
+
| [ARCHITECTURE.md](ARCHITECTURE.md) | System topology, request lifecycle, component map, design decisions |
|
|
311
|
+
| [documents/platform-docs.md](documents/platform-docs.md) | Full tool reference — all 141 tools with parameters and examples |
|
|
312
|
+
| [documents/prompts-reference.md](documents/prompts-reference.md) | All MCP prompts (31 prompts, 12 plugin skills, 4 subagents) |
|
|
313
|
+
| [docs/automation.md](docs/automation.md) | Automation hooks reference — all 18 events, policy schema, condition filters |
|
|
314
|
+
| [docs/troubleshooting.md](docs/troubleshooting.md) | Diagnostics, common errors, and fixes |
|
|
315
|
+
| [docs/remote-access.md](docs/remote-access.md) | VPS setup, OAuth 2.0, nginx/Caddy reverse proxy |
|
|
316
|
+
| [documents/headless-quickstart.md](documents/headless-quickstart.md) | CI, Docker, server use without VS Code |
|
|
317
|
+
| [docs/cowork.md](docs/cowork.md) | Computer-use (Cowork) workflow and git worktree setup — **MCP bridge tools unavailable inside Cowork** |
|
|
318
|
+
| [docs/multi-ide.md](docs/multi-ide.md) | Multiple sessions and parallel editor instances |
|
|
319
|
+
| [docs/migration.md](docs/migration.md) | Upgrade guide between major versions |
|
|
320
|
+
| [documents/plugin-authoring.md](documents/plugin-authoring.md) | Plugin manifest schema, entrypoint API, distribution |
|
|
321
|
+
| [documents/styleguide.md](documents/styleguide.md) | Code conventions, tool factory pattern, output formats |
|
|
322
|
+
| [docs/adr/](docs/adr/) | Architecture Decision Records |
|
|
323
|
+
| [CONTRIBUTING.md](CONTRIBUTING.md) | Contributor guide, build setup, test requirements |
|
|
324
|
+
| [deploy/README.md](deploy/README.md) | VPS provisioning and systemd service scripts |
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Requirements
|
|
329
|
+
|
|
330
|
+
- **Node.js ≥ 20** (bridge)
|
|
331
|
+
- **VS Code, Cursor, or Windsurf** — optional. Headless mode covers git, terminals, GitHub, and LSP via `typescript-language-server`. Extension required for debugger, editor decorations, and live editor state.
|
|
332
|
+
- **Claude Code CLI** — for local use. Remote MCP clients (claude.ai, Codex CLI) work via Streamable HTTP transport with OAuth 2.0.
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## License
|
|
337
|
+
|
|
338
|
+
MIT — see [LICENSE](LICENSE).
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Contributing
|
|
343
|
+
|
|
344
|
+
Bug reports and PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
345
|
+
|
|
346
|
+
When reporting a bug, include the output of:
|
|
347
|
+
```bash
|
|
348
|
+
claude-ide-bridge print-token # confirms bridge is running
|
|
349
|
+
# then in Claude: call getBridgeStatus
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
Per the project's bug fix protocol: a reproducing test must exist before a fix lands.
|
package/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Patchwork OS
|
|
2
|
+
|
|
3
|
+
**AI that works while you're away. Runs on your machine. Doesn't lock you in.**
|
|
4
|
+
|
|
5
|
+
Most AI assistants wait for you to type. Patchwork OS does the opposite: it watches for things that matter, does the work, and hands you a summary when you're ready.
|
|
6
|
+
|
|
7
|
+
- **A parent's morning.** School emails sorted, the field-trip form flagged, a reply drafted to the teacher — done before the first coffee. You approve, it sends.
|
|
8
|
+
- **A developer's overnight.** Tests run on every push, flaky ones quarantined, a clean PR opened against the failing build. You wake up to a passing CI and a short note on what changed.
|
|
9
|
+
- **A small business's inbox.** New customer questions triaged, invoices matched to orders, three follow-ups drafted in your voice. Nothing sends without your nod.
|
|
10
|
+
|
|
11
|
+
**How it works**
|
|
12
|
+
|
|
13
|
+
- **Recipes** — plain YAML files describe what to watch for and what to do. Share them like dotfiles. No code required.
|
|
14
|
+
- **Your models, your keys** — Claude, GPT, Gemini, Grok, or local Ollama. Swap anytime. Nothing phones home.
|
|
15
|
+
- **Oversight you actually use** — a dashboard on your phone approves or rejects anything risky before it happens.
|
|
16
|
+
|
|
17
|
+
Read the founding essay: [NARRATIVE.md](./NARRATIVE.md) · Full docs below.
|
|
18
|
+
|
|
19
|
+
> Status: **Phase 0 — Foundation** (alpha, not yet published). Open source (MIT). Built on the [Claude IDE Bridge](./README.bridge.md).
|
|
20
|
+
|
|
21
|
+
## Why
|
|
22
|
+
|
|
23
|
+
Existing AI assistants answer questions. Patchwork OS *does things* while
|
|
24
|
+
you're at your kid's soccer game or asleep:
|
|
25
|
+
|
|
26
|
+
- **Multi-model from day one** — Claude, OpenAI, Gemini, Grok, local LLMs (Ollama)
|
|
27
|
+
- **Drag-and-drop recipes** — YAML automation anyone can write
|
|
28
|
+
- **Oversight dashboard** — approve/reject high-risk actions from phone
|
|
29
|
+
- **Proven core** — 2,725+ tests, real-time IDE context, 170 built-in tools
|
|
30
|
+
- **100% MIT**
|
|
31
|
+
|
|
32
|
+
## Quick start (alpha)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm install && npm run build
|
|
36
|
+
node dist/index.js --model claude --full
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Config lives at `~/.patchwork/config.json`. See [`config.schema.json`](./config.schema.json).
|
|
40
|
+
|
|
41
|
+
## Roadmap
|
|
42
|
+
|
|
43
|
+
| Phase | Name | Status |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| 0 | Foundation — rename, config, ModelAdapter | **in progress** |
|
|
46
|
+
| 1 | Multi-model + Dashboard MVP | planned |
|
|
47
|
+
| 2 | Recipe System + non-code workflows | planned |
|
|
48
|
+
| 3 | Security + headless / mobile | planned |
|
|
49
|
+
| 4 | Community + ecosystem | planned |
|
|
50
|
+
| 5 | Optional hosted tier | year 2 |
|
|
51
|
+
|
|
52
|
+
Full plan: `../Patchwork_OS_Plan_and_Roadmap.docx`.
|
|
53
|
+
|
|
54
|
+
## Architecture
|
|
55
|
+
|
|
56
|
+
Patchwork OS **extends** the Claude IDE Bridge, it does not replace it. The
|
|
57
|
+
bridge's MCP server, automation hooks, orchestrator, plugin system, and tool
|
|
58
|
+
library are the substrate. Patchwork adds:
|
|
59
|
+
|
|
60
|
+
1. `src/adapters/` — `ModelAdapter` interface + per-provider implementations
|
|
61
|
+
2. `src/recipes/` — YAML recipe parser → existing automation DSL *(planned)*
|
|
62
|
+
3. `dashboard/` — Next.js oversight UI *(planned)*
|
|
63
|
+
|
|
64
|
+
For the underlying bridge docs see [README.bridge.md](./README.bridge.md).
|
|
65
|
+
|
|
66
|
+
## Contributing
|
|
67
|
+
|
|
68
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
69
|
+
|
|
70
|
+
## License
|
|
71
|
+
|
|
72
|
+
MIT © Oolab Labs.
|
package/deploy/README.md
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Deploy
|
|
2
|
+
|
|
3
|
+
Production VPS deployment files for claude-ide-bridge.
|
|
4
|
+
|
|
5
|
+
> **Deployment targets:** The **systemd + nginx** path (this directory) is the
|
|
6
|
+
> production-supported deployment for VPS/remote use. A `Dockerfile` and
|
|
7
|
+
> `docker-compose.yml` exist in the repo root as an alternative for
|
|
8
|
+
> containerised environments, but are not actively tested against the systemd
|
|
9
|
+
> config — if you use Docker, treat it as a community-supported path and keep
|
|
10
|
+
> it in sync with any service config changes.
|
|
11
|
+
|
|
12
|
+
## Files
|
|
13
|
+
|
|
14
|
+
| File | Purpose |
|
|
15
|
+
|------|---------|
|
|
16
|
+
| `bootstrap-new-vps.sh` | **Full fresh-server setup** — Node.js, clone, build, user, firewall, systemd, nginx, Certbot |
|
|
17
|
+
| `install-vps-service.sh` | **Idempotent updater** — re-installs service + nginx after `git pull` on an existing server |
|
|
18
|
+
| `nginx-claude-bridge.conf.template` | nginx config reference (domain + port injected by scripts) |
|
|
19
|
+
| `claude-ide-bridge.service.template` | systemd unit reference (paths + user injected by scripts) |
|
|
20
|
+
| `claude-ide-bridge@.service` | Template unit for multi-user demo instances (alternate pattern) |
|
|
21
|
+
| `ecosystem.config.js.example` | PM2 ecosystem config template (alternative to systemd) |
|
|
22
|
+
|
|
23
|
+
## First-time setup (new VPS)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Option A: run remotely on fresh server
|
|
27
|
+
DOMAIN=bridge.example.com bash <(curl -fsSL https://raw.githubusercontent.com/Oolab-labs/claude-ide-bridge/main/deploy/bootstrap-new-vps.sh)
|
|
28
|
+
|
|
29
|
+
# Option B: after cloning the repo
|
|
30
|
+
DOMAIN=bridge.example.com bash deploy/bootstrap-new-vps.sh
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The bootstrap script handles everything end-to-end:
|
|
34
|
+
1. Installs Node.js 20, nginx, certbot
|
|
35
|
+
2. Creates a dedicated `claude-bridge` system user (non-root)
|
|
36
|
+
3. Clones the repo to `/opt/claude-ide-bridge`
|
|
37
|
+
4. Runs `npm ci && npm run build`
|
|
38
|
+
5. Generates `.env.vps` with a random auth token
|
|
39
|
+
6. Opens ports 80/443 in ufw
|
|
40
|
+
7. Installs and enables the systemd service
|
|
41
|
+
8. Writes the nginx config with your domain injected
|
|
42
|
+
9. Runs Certbot for HTTPS
|
|
43
|
+
10. Starts the bridge and confirms it's healthy
|
|
44
|
+
|
|
45
|
+
**Required:** `DOMAIN` env var pointing to a subdomain that resolves to your VPS IP.
|
|
46
|
+
|
|
47
|
+
**Optional overrides:**
|
|
48
|
+
|
|
49
|
+
| Variable | Default | Description |
|
|
50
|
+
|----------|---------|-------------|
|
|
51
|
+
| `REPO_URL` | GitHub upstream | Git repo to clone |
|
|
52
|
+
| `INSTALL_DIR` | `/opt/claude-ide-bridge` | Where to install |
|
|
53
|
+
| `SERVICE_USER` | `claude-bridge` | System user to run as |
|
|
54
|
+
| `PORT` | `9000` | Bridge listen port |
|
|
55
|
+
| `BRANCH` | `main` | Git branch |
|
|
56
|
+
| `SKIP_CERTBOT` | `0` | Set to `1` to skip TLS (DNS not ready) |
|
|
57
|
+
|
|
58
|
+
## Updating an existing server
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cd /opt/claude-ide-bridge # or wherever INSTALL_DIR is
|
|
62
|
+
git pull
|
|
63
|
+
npm ci
|
|
64
|
+
npm run build
|
|
65
|
+
bash deploy/install-vps-service.sh
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`install-vps-service.sh` re-generates the systemd unit and nginx config from the current state of `.env.vps`, then restarts the service automatically. It auto-detects the domain and service user from the existing installation — no config needed.
|
|
69
|
+
|
|
70
|
+
## Day-to-day management
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# View live logs
|
|
74
|
+
journalctl -u claude-ide-bridge -f
|
|
75
|
+
|
|
76
|
+
# Check status
|
|
77
|
+
systemctl status claude-ide-bridge
|
|
78
|
+
|
|
79
|
+
# Restart after code change
|
|
80
|
+
npm run build && systemctl restart claude-ide-bridge
|
|
81
|
+
|
|
82
|
+
# Stop (won't restart until manually started)
|
|
83
|
+
systemctl stop claude-ide-bridge
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Using PM2 instead of systemd
|
|
87
|
+
|
|
88
|
+
PM2 is a simpler alternative when you're running as root, already have PM2 installed, or prefer not to configure systemd manually.
|
|
89
|
+
|
|
90
|
+
> **Important:** The bridge picks a **random port** by default. The port in your PM2 start command **must match** the port in your nginx `proxy_pass` directive, or every restart will cause a 502 Bad Gateway.
|
|
91
|
+
|
|
92
|
+
### Quick start with PM2
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Replace 4748 and YOUR_TOKEN_HERE with your nginx proxy_pass port and auth token
|
|
96
|
+
pm2 delete claude-bridge 2>/dev/null || true
|
|
97
|
+
pm2 start /root/claude-ide-bridge/dist/index.js \
|
|
98
|
+
--name claude-bridge \
|
|
99
|
+
-- --port 4748 --bind 0.0.0.0 --vps --fixed-token YOUR_TOKEN_HERE
|
|
100
|
+
pm2 save
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Retrieve your token anytime:
|
|
104
|
+
```bash
|
|
105
|
+
cat ~/.claude/ide/*.lock | node -e "const d=require('fs').readFileSync('/dev/stdin','utf8').trim(); console.log(JSON.parse(d).authToken)"
|
|
106
|
+
# or if you have a .env.vps:
|
|
107
|
+
grep FIXED_TOKEN /root/claude-ide-bridge/.env.vps
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Persist across reboots
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Generate and run the startup command PM2 prints
|
|
114
|
+
pm2 startup
|
|
115
|
+
# (run the command it outputs, then:)
|
|
116
|
+
pm2 save
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Using an ecosystem file
|
|
120
|
+
|
|
121
|
+
For repeatable deployments, use the included example:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
cp deploy/ecosystem.config.js.example ecosystem.config.js
|
|
125
|
+
# Edit ecosystem.config.js: set cwd, port, and fixed-token
|
|
126
|
+
pm2 start ecosystem.config.js
|
|
127
|
+
pm2 save
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Day-to-day management with PM2
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# View live logs
|
|
134
|
+
pm2 logs claude-bridge
|
|
135
|
+
|
|
136
|
+
# Check status
|
|
137
|
+
pm2 status
|
|
138
|
+
|
|
139
|
+
# Restart after code change
|
|
140
|
+
npm run build && pm2 restart claude-bridge
|
|
141
|
+
|
|
142
|
+
# Stop
|
|
143
|
+
pm2 stop claude-bridge
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## MCP endpoint
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
https://<your-domain>/mcp
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Use in `.mcp.json` for Claude Desktop, claude.ai Custom Connectors, or any remote MCP client:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"mcpServers": {
|
|
157
|
+
"claude-ide-bridge": {
|
|
158
|
+
"type": "http",
|
|
159
|
+
"url": "https://your-domain/mcp",
|
|
160
|
+
"headers": {
|
|
161
|
+
"Authorization": "Bearer ${BRIDGE_TOKEN}"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Set `BRIDGE_TOKEN` in your shell profile. Retrieve the token anytime:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
grep FIXED_TOKEN /opt/claude-ide-bridge/.env.vps
|
|
172
|
+
```
|