Central AI Agent Managed Packages - unified provider registry and package manager for AI coding agents Use when: (1) running caamp CLI commands, (2) calling its 276 API functions, (3) configuring @cleocode/caamp, (4) understanding its 180 type definitions, (5) working with its 8 classes, (6) user mentions "ai", "agent", "skills", "cli", "claude", (7) user mentions "@cleocode/caamp" or asks about its API.
Resources
2Install
npx skillscat add kryptobaseddev/cleo/skill-caamp Install via the SkillsCat registry.
SKILL.md
@cleocode/caamp
Central AI Agent Managed Packages - unified provider registry and package manager for AI coding agents
Quick Start
npm install -D @cleocode/caampnpx caamp --helpAPI
| Function | Description |
|---|---|
getPlatformPaths() |
Get OS-appropriate paths for CAAMP's global directories. |
getSystemInfo() |
Get a cached system information snapshot. |
_resetPlatformPathsCache() |
Invalidate the path and system info caches. Use in tests after mutating AGENTS_HOME env var. |
getPlatformLocations() |
Resolves platform-specific directory locations for the current OS. |
getAgentsHome() |
Returns the global agents home directory path. |
getProjectAgentsDir() |
Returns the project-local .agents directory path. |
resolveProjectPath() |
Resolves a relative path against a project directory. |
getCanonicalSkillsDir() |
Returns the canonical skills storage directory path. |
getLockFilePath() |
Returns the path to the CAAMP lock file. |
getAgentsMcpDir() |
Gets the MCP directory within the .agents/ standard structure. |
getAgentsMcpServersPath() |
Gets the MCP servers.json path within the .agents/ standard structure. |
getAgentsInstructFile() |
Gets the primary AGENTS.md instruction file path within .agents/. |
getAgentsConfigPath() |
Gets the config.toml path within the .agents/ standard structure. |
getAgentsWikiDir() |
Gets the wiki directory within the .agents/ standard structure. |
getAgentsSpecDir() |
Gets the spec directory within the .agents/ standard structure. |
| ... | 261 more — see API reference |
Configuration
import type { DetectionConfig } from "@cleocode/caamp";
const config: Partial<DetectionConfig> = {
// Detection methods to try, in order.
methods: [],
// Binary name to look up on PATH (for `"binary"` method).
binary: "...",
// Directories to check for existence (for `"directory"` method).
directories: "...",
// macOS .app bundle name (for `"appBundle"` method).
appBundle: "...",
// Flatpak application ID (for `"flatpak"` method).
flatpakId: "...",
};See references/CONFIGURATION.md for full details.
Gotchas
HookEventis deprecated: UseCanonicalHookEventfrom../hooks/types.jsfor the normalized CAAMP taxonomy. This type remains for backward compatibility with registry.json'scapabilities.hooks.supportedstring arrays.CtSkillEntryis deprecated: UseSkillLibraryEntryinstead.CtValidationResultis deprecated: UseSkillLibraryValidationResultinstead.CtValidationIssueis deprecated: UseSkillLibraryValidationIssueinstead.CtProfileDefinitionis deprecated: UseSkillLibraryProfileinstead.CtDispatchMatrixis deprecated: UseSkillLibraryDispatchMatrixinstead.CtManifestis deprecated: UseSkillLibraryManifestinstead.CtManifestSkillis deprecated: UseSkillLibraryManifestSkillinstead.resolveProvidersRegistryPath()throws: Error ifproviders/registry.jsoncannot be found within 8 parent levelsensureProviderInstructionFile()throws: Error if the provider ID is not found in the registryensureAllProviderInstructionFiles()throws: Error if any provider ID is not found in the registryresolveTierDir()throws:Errorwhentier='project'and noprojectDiris suppliedresolveDefaultTargetProviders()throws:PiRequiredErrorwhen mode is'force-pi'and Pi is not installed.resolveFormat()throws: Error if format flags conflictreadConfig()throws: If the file cannot be read or the format is unsupportedwriteConfig()throws: If the format is unsupportedremoveConfig()throws: If the format is unsupportedinstallMcpServer()throws:Errorwhen the provider has no MCP capability or no project-scoped config path is available.requireMcpProvider()throws:LAFSCommandErrorwhen the provider is unknown or has no MCP capability.parseScope()throws:LAFSCommandErrorwhenrawis set to an invalid value.parseEnvAssignment()throws:LAFSCommandErrorwhen the token is malformed.fetchWithTimeout()throws:NetworkErroron timeout or network failureensureOkResponse()throws:NetworkErrorwhenresponse.okisfalserequirePiHarness()throws:LAFSCommandErrorwhen Pi is not installed.parseScope()throws:LAFSCommandErrorwhenrawis set to an invalid value.recommendSkills()throws: Error withcodeandissuesproperties when criteria are invalidloadLibraryFromModule()throws: If the module cannot be loaded or does not implement SkillLibrarybuildLibraryFromFiles()throws: If skills.json is not found at the rootregisterSkillLibraryFromPath()throws: Error if the library cannot be loaded from the given path
Key Types
SkillLibraryEntry— A single skill entry in a library catalog.SkillLibraryValidationResult— Validation result from skill frontmatter validation.SkillLibraryValidationIssue— A single validation issue.SkillLibraryProfile— Profile definition for grouped skill installation.SkillLibraryDispatchMatrix— Dispatch matrix for task routing to skills.SkillLibraryManifestSkill— Skill entry within the library manifest.SkillLibraryManifest— Full manifest structure for a skill library.SkillLibrary— Standard interface for a skill library. Any directory or module providing skills must implement this contract. CAAMP uses it to discover, resolve, and install skills from any source.RegistryDetection— Raw detection configuration as stored in registry.json.ProviderPriority— Priority tier identifier stored in registry.json.
References
- references/CONFIGURATION.md — Full config options
- references/API-REFERENCE.md — Signatures, parameters, examples