Files
smartkvm/readme.md
T

68 lines
1.4 KiB
Markdown
Raw Normal View History

2026-05-16 13:41:55 +00:00
# @push.rocks/smartkvm
Programmable browser-based visual KVM automation with frame capture and keyboard transport.
## Install
```sh
pnpm add @push.rocks/smartkvm
```
## Usage
```typescript
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:
```sh
SMARTKVM_TEST_URL=https://your-kvm.local pnpm test
```
Optional variables are `SMARTKVM_TEST_USERNAME`, `SMARTKVM_TEST_PASSWORD`, and `SMARTKVM_TEST_HEADLESS=false`.