1.4 KiB
1.4 KiB
@push.rocks/smartkvm
Programmable browser-based visual KVM automation with frame capture and keyboard transport.
Install
pnpm add @push.rocks/smartkvm
Usage
import {
SmartBrowserKvm,
SmartKvmTerminal,
type IOcrEngine,
} from '@push.rocks/smartkvm';
const ocrEngine: IOcrEngine = {
async recognize(frame) {
// Plug in an OCR implementation here.
return {
text: '',
confidence: 0,
};
},
};
const kvm = new SmartBrowserKvm({
url: 'https://jetkvm.local',
kind: 'jetkvm',
username: 'admin',
password: 'admin',
headless: false,
ignoreHttpsErrors: true,
});
await kvm.connect();
const terminal = new SmartKvmTerminal({
kvm,
ocrEngine,
osHint: 'linux',
shellHint: 'bash',
});
await terminal.bootstrap();
const result = await terminal.runCommand('uname -a');
console.log(result);
await kvm.disconnect();
Scope
This package is transport-focused and AI-agnostic. It automates browser-based visual KVM devices by opening the KVM web UI, focusing the viewer, capturing frames, and sending keyboard input. OCR and AI/model integrations are intentionally pluggable and external.
Manual Browser Test
Automated tests do not require real KVM hardware. To run the manual browser smoke test, set:
SMARTKVM_TEST_URL=https://your-kvm.local pnpm test
Optional variables are SMARTKVM_TEST_USERNAME, SMARTKVM_TEST_PASSWORD, and SMARTKVM_TEST_HEADLESS=false.