Skip to main content

The Xec Ecosystem

Xec is more than a single toolβ€”it's an ecosystem of packages, integrations, and community resources designed to provide comprehensive command execution capabilities.

Core Packages​

@xec-sh/core​

The heart of the Xec ecosystemβ€”the universal execution engine.

Features:

  • Template literal command execution
  • Multi-adapter architecture
  • Connection pooling and caching
  • Event system and streaming
  • TypeScript-first design

Installation:

npm install @xec-sh/core

Usage:

import { $ } from '@xec-sh/core';
await $`echo "Hello from core"`;

@xec-sh/cli​

Command-line interface for Xec, providing interactive and script execution capabilities.

Features:

  • Interactive REPL mode
  • Script execution
  • Dynamic command loading
  • Configuration management
  • Built-in command library

Installation:

npm install -g @xec-sh/cli

Usage:

xec run script.js
xec --help

@xec-sh/test-utils​

Testing utilities for projects using Xec.

Features:

  • Test container management
  • Mock adapters for testing
  • SSH test helpers
  • Kubernetes test clusters
  • Assertion utilities

Installation:

npm install --save-dev @xec-sh/test-utils

Usage:

import { createTestContainer } from '@xec-sh/test-utils';

const container = await createTestContainer({
image: 'postgres:14',
env: { POSTGRES_PASSWORD: 'test' }
});

Execution Adapters​

Local Adapter​

Built into @xec-sh/core, executes commands on the local machine.

Features:

  • Direct process spawning
  • Shell selection
  • Environment management
  • Working directory control

SSH Adapter​

Remote command execution via SSH protocol.

Features:

  • Connection pooling
  • Key-based authentication
  • SSH tunneling
  • File transfer (SCP/SFTP)
  • Proxy jump support

Docker Adapter​

Container command execution and management.

Features:

  • Container lifecycle management
  • Ephemeral container support
  • Volume and network management
  • Docker Compose integration
  • Build and push operations

Kubernetes Adapter​

Pod execution and cluster operations.

Features:

  • Pod exec and logs
  • Port forwarding
  • File copy to/from pods
  • Multi-container support
  • Namespace management

Remote Docker Adapter​

Docker operations over SSH connections.

Features:

  • Remote Docker daemon access
  • SSH tunnel for Docker socket
  • Full Docker API over SSH
  • Secure remote container management

Configuration System​

Project Configuration​

.xec/config.yaml provides project-specific settings.

# .xec/config.yaml
defaults:
shell: /bin/bash
timeout: 30000

targets:
production:
type: ssh
host: prod.example.com
username: deploy

staging:
type: docker
container: staging-app

tasks:
deploy:
target: production
commands:
- git pull
- npm install
- npm run build

Global Configuration​

User-level configuration in ~/.xec/config.yaml.

Environment Variables​

Configuration through environment variables:

XEC_DEFAULT_SHELL=/bin/zsh
XEC_SSH_TIMEOUT=10000
XEC_CACHE_DIR=/tmp/xec-cache

Plugin System​

Dynamic Commands​

Extend Xec with custom commands in .xec/commands/.

// .xec/commands/deploy.ts
export function command(program) {
program
.command('deploy <env>')
.description('Deploy to environment')
.action(async (env) => {
const { $ } = await import('@xec-sh/core');
// Implementation
});
}

Custom Adapters​

Create adapters for new execution environments.

import { BaseAdapter } from '@xec-sh/core';

class CustomAdapter extends BaseAdapter {
async execute(command: Command): Promise<ExecutionResult> {
// Custom execution logic
return this.createResult({
stdout: 'output',
stderr: '',
exitCode: 0
});
}
}

Integrations​

CI/CD Platforms​

GitHub Actions​

- name: Execute with Xec
run: |
npx @xec-sh/cli run ./scripts/deploy.js

GitLab CI​

deploy:
script:
- npm install @xec-sh/core
- node deploy-script.js

Jenkins​

sh 'npx @xec-sh/cli run build.js'

Container Platforms​

Docker Compose​

services:
xec-runner:
image: node:18
volumes:
- ./scripts:/scripts
command: npx @xec-sh/cli run /scripts/task.js

Kubernetes Jobs​

apiVersion: batch/v1
kind: Job
metadata:
name: xec-job
spec:
template:
spec:
containers:
- name: xec
image: node:18
command: ["npx", "@xec-sh/cli", "run", "job.js"]

Development Tools​

VS Code Extension​

(Planned) Xec command palette and IntelliSense support.

JetBrains Plugin​

(Planned) Xec integration for IntelliJ-based IDEs.

Community Resources​

Official Resources​

Community Projects​

Xec Scripts Collection​

Community-contributed scripts and examples.

Xec Docker Images​

Pre-built Docker images with Xec installed.

Xec GitHub Actions​

Reusable GitHub Actions for Xec operations.

Ecosystem Architecture​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ User Applications β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ @xec-sh/cli β”‚ Custom Scripts β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ @xec-sh/core β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Adapter Layer β”‚
β”œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚Localβ”‚SSH β”‚Dockerβ”‚ K8s β”‚Remoteβ”‚ Custom β”‚
β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Version Compatibility​

PackageVersionNode.jsTypeScript
@xec-sh/core0.7.xβ‰₯20.0.0β‰₯5.0.0
@xec-sh/cli0.7.xβ‰₯20.0.0β‰₯5.0.0
@xec-sh/test-utils0.7.xβ‰₯20.0.0β‰₯5.0.0

Roadmap​

Near Term (Q1 2025)​

  • Plugin marketplace
  • Enhanced Kubernetes features
  • Performance optimizations
  • Additional authentication methods

Medium Term (Q2-Q3 2025)​

  • Cloud provider adapters (AWS, GCP, Azure)
  • Workflow orchestration engine
  • Visual debugging tools
  • Enhanced security features

Long Term (Q4 2025+)​

  • Distributed execution
  • AI-powered command suggestions
  • Cross-platform GUI
  • Enterprise features

Contributing to the Ecosystem​

Package Development​

Create packages that extend Xec:

// xec-plugin-aws/index.ts
import { $ } from '@xec-sh/core';

export class AWSAdapter {
async executeOnEC2(instanceId: string, command: string) {
// Implementation using AWS SSM
}
}

Adapter Creation​

Implement adapters for new environments:

import { BaseAdapter } from '@xec-sh/core';

class CloudRunAdapter extends BaseAdapter {
async execute(command: Command): Promise<ExecutionResult> {
// Cloud Run execution logic
return this.createResult({
stdout: '',
stderr: '',
exitCode: 0
});
}
}

Tool Integration​

Integrate Xec into existing tools:

// webpack.config.js
const { $ } = require('@xec-sh/core');

module.exports = {
plugins: [
{
apply: (compiler) => {
compiler.hooks.afterEmit.tapAsync('XecPlugin', async (compilation, callback) => {
await $`npm run post-build`;
callback();
});
}
}
]
};

Best Practices​

Package Selection​

  • Use @xec-sh/core for library integration
  • Use @xec-sh/cli for command-line tools
  • Use @xec-sh/test-utils for testing

Version Management​

  • Pin major versions in production
  • Use latest minor versions for features
  • Test thoroughly before major upgrades

Security​

  • Audit dependencies regularly
  • Use environment variables for secrets
  • Implement least-privilege access
  • Enable audit logging in production

Support and Resources​

Getting Help​

  • Documentation: Comprehensive guides and API references
  • GitHub Issues: Bug reports and feature requests
  • Stack Overflow: Tagged questions with xec

Training and Certification​

(Planned) Official training courses and certification programs.

Commercial Support​

(Planned) Enterprise support packages with SLAs.

Conclusion​

The Xec ecosystem provides a comprehensive solution for command execution across diverse environments. Whether you're building simple automation scripts or complex orchestration systems, the ecosystem offers the tools, integrations, and community support needed for success.

As the ecosystem grows, it maintains its core philosophy: making command execution simple, safe, and consistent everywhere. Join the community and help shape the future of universal command execution.