🎉 Cmdop v1.0 is here! Download now →
Skip to Content
DocsSDKMachines API

Machines API

Manage your connected machines.

List Machines

const machines = await client.machines.list();

With Filters

const machines = await client.machines.list({ status: 'online', tags: ['production'], search: 'web-server', });

Get Machine

const machine = await client.machines.get('machine-id');

Response

interface Machine { id: string; name: string; status: 'online' | 'offline' | 'connecting'; os: string; arch: string; hostname: string; ip: string; tags: string[]; createdAt: Date; lastSeen: Date; }

Machine Status

Get detailed status:

const status = await client.machines.status('machine-id');

Response

interface MachineStatus { connected: boolean; uptime: number; // seconds lastPing: Date; agentVersion: string; cpu: { usage: number; cores: number; }; memory: { total: number; used: number; free: number; }; disk: { total: number; used: number; free: number; }; }

Update Machine

await client.machines.update('machine-id', { name: 'New Name', tags: ['production', 'web'], });

Delete Machine

await client.machines.delete('machine-id');

Disconnect Machine

Temporarily disconnect:

await client.machines.disconnect('machine-id');

Machine Events

Subscribe to machine events:

const subscription = client.machines.subscribe('machine-id'); subscription.on('status', (status) => { console.log('Status:', status); }); subscription.on('metrics', (metrics) => { console.log('CPU:', metrics.cpu.usage); }); // Cleanup subscription.unsubscribe();

Bulk Operations

// Get multiple machines const machines = await client.machines.getMany([ 'machine-1', 'machine-2', ]); // Update tags on multiple machines await client.machines.updateMany( ['machine-1', 'machine-2'], { tags: ['batch-updated'] } );

Machine Groups

// List groups const groups = await client.machines.groups.list(); // Get machines in group const machines = await client.machines.list({ group: 'production', });

Machines API | Cmdop