@a3t/rapid-core
v0.1.15
Published
Core library for RAPID - AI-assisted development with dev containers
Maintainers
Readme
@a3t/rapid-core
Core library for RAPID - AI-assisted development with dev containers.
This package provides the foundational utilities for orchestrating AI coding assistants within containerized development environments.
Features
- 🐳 Dev Container Management - Control containerized environments via devcontainer CLI
- 🤖 Agent Configuration - Manage multiple AI coding assistants (Claude Code, OpenCode, Aider, etc.)
- 🔐 Secret Management - Integration with 1Password and Vault for credential handling
- 🔌 MCP Server Support - Model Context Protocol integration for external tools and APIs
- ⚙️ Configuration Loading - Smart configuration resolution with cosmiconfig
- 🔍 External Auth Detection - Detect credentials from external AI tools
Installation
npm install @a3t/rapid-coreUsage
Loading Configuration
import { loadConfig } from '@a3t/rapid-core';
const { config, rootDir } = await loadConfig();
console.log(config.agents.default); // 'claude'Managing Containers
import { getContainerStatus, startContainer, execInContainer } from '@a3t/rapid-core';
// Check if container is running
const status = await getContainerStatus(projectRoot, config);
// Start container
const result = await startContainer(projectRoot, config);
// Execute command in container
await execInContainer(projectRoot, ['claude'], config);Agent Detection
import { checkAllAgents, getAgent, launchAgent } from '@a3t/rapid-core';
// Check installed agents
const agents = await checkAllAgents(config);
// Get specific agent
const claude = getAgent(config, 'claude');
// Launch agent
await launchAgent(claude, { cwd: projectRoot });External Authentication
import { detectClaudeCodeAuth, detectAllCredentials, getAuthStatus } from '@a3t/rapid-core';
// Detect Claude Code credentials
const claudeAuth = await detectClaudeCodeAuth();
// Detect all credentials from external tools
const credentials = await detectAllCredentials();
// Get authentication status
const authStatus = await getAuthStatus();API Reference
Configuration
loadConfig(cwd?)- Load RAPID configuration from cosmiconfig searchloadConfigFromFile(filepath)- Load configuration from specific filegetDefaultConfig()- Get default configurationmergeWithDefaults(config)- Merge user config with defaults
Container Management
hasDevcontainerCli()- Check if devcontainer CLI is installedhasDocker()- Check if Docker is availablegetContainerStatus(rootDir, config)- Get current container statusstartContainer(rootDir, config, options)- Start dev containerstopContainer(rootDir, config, options)- Stop dev containerexecInContainer(rootDir, command, config, options)- Execute command in container
Agent Management
checkAgentAvailable(agent)- Check if agent CLI is installedcheckAllAgents(config)- Check all configured agentsgetDefaultAgent(config)- Get default agent from configgetAgent(config, name)- Get specific agent by namelaunchAgent(agent, options)- Launch agent CLI
Authentication
detectClaudeCodeAuth()- Detect Claude Code credentialsdetectCodexAuth()- Detect OpenAI Codex credentialsdetectGeminiAuth()- Detect Google Gemini credentialsdetectAiderAuth()- Detect Aider API keysdetectEnvAuth()- Detect API keys from environmentdetectAllCredentials(config)- Detect all available credentialsgetAuthStatus(config)- Get authentication status summarygetCredentialsForProvider(provider, config)- Get credentials for specific providergetAuthEnvironment(config)- Get environment variables for detected credentials
Types
import type {
RapidConfig,
ContainerConfig,
AgentsConfig,
AgentDefinition,
SecretsConfig,
ContextConfig,
McpConfig,
DetectedCredential,
AuthStatus,
} from '@a3t/rapid-core';Configuration File Format
See rapid.json Specification for complete configuration reference.
Logger
import { logger, setLogLevel } from '@a3t/rapid-core';
// Set log level
setLogLevel('debug'); // 'debug' | 'info' | 'warn' | 'error'
// Log messages
logger.info('Information message');
logger.warn('Warning message');
logger.error('Error message');
logger.success('Success message');
logger.blank(); // Empty lineError Handling
Most async functions return success/error objects rather than throwing:
const result = await startContainer(rootDir, config);
if (!result.success) {
console.error(result.error);
}See Also
- @a3t/rapid - CLI tool
- @a3t/rapid-schema - JSON schema
- RAPID Documentation
License
MIT © 2026 Rude Company LLC
