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',
});