Record, transcribe, diarize, and summarize meetings entirely on your own hardware — no cloud, no per-minute billing, no third-party AI. This shipped and ran. It is no longer actively developed; the product line continues as Meeting-Ops.
Part of the Unicorn Commander suite by Magic Unicorn Unconventional Technology & Stuff Inc.
This is the UC-1 appliance line, split out from the product codebase in July 2026 so the two stop being mistaken for each other.
What it does, and did, on real hardware: browser UI, live recording from a USB mic or conference room input, Whisper transcription, speaker diarization, AI meeting summaries, action-item extraction, session search and export, SSO — all self-contained on one box with no outbound dependency. It was provisioned, deployed, and used.
Where it stands: maintenance. Last substantive engineering was August 2025. It still installs and runs; nobody is adding features. Two things are worth reading before you rely on it — the honest NPU section below, and the weak shipped defaults under Running it.
What it is not: the codebase behind meeting-ops.unicorncommander.ai or the iOS app. That is a separate, actively developed product — browser-first, built on Parakeet rather than Whisper, with no NPU code path at all. If you want managed hosting or current feature work, you want that one. If you want a box that records meetings and never phones home, this is the one.
| Component | Part |
|---|---|
| CPU | AMD Ryzen 9 8945HS (Zen 4, 8C/16T) |
| iGPU | AMD Radeon 780M (RDNA 3) |
| NPU | AMD XDNA1 / Phoenix AI Engine — 16 TOPS INT8 (32 TOPS INT4 theoretical) |
| Kernel driver | amdxdna, device at /dev/accel/accel0 (mainlined in Linux 6.14) |
This is the part worth reading, and earlier versions of this README got it wrong.
Previous revisions advertised "220x faster than CPU", "1 hour of audio in 16.2 seconds", and "99% accuracy with Whisper Large-v3". None of those were measurements. They trace back to a single hardcoded constant:
# stt_engine/whisperx_npu_engine_real.py
self.npu_metrics = {
"speedup_factor": 220, # Minimum guaranteed speedup
...
}That literal was then quoted back as a benchmark in NPU_PERFORMANCE_RESULTS.md under the
heading "Performance Metrics (From Code Analysis)", surfaced through the API, and printed
by test scripts. docs/NPU_HARDWARE_EVIDENCE.md does the same thing — it cites hardcoded
Python spec dictionaries as evidence that the hardware performs. No benchmark was ever run.
For scale: 220x realtime means transcribing an hour of audio in ~16 seconds with Whisper large-v3 on a 16 TOPS INT8 part. That was never physically plausible.
Real, verifiable progress — this was not nothing:
-
Hardware bring-up.
amdxdnaloads,/dev/accel/accel0opens, AIE v1.1 detected. -
Direct IOCTL access to the NPU without Vitis AI:
DRM_IOCTL_AMDXDNA_GET_INFOfor device queries,DRM_IOCTL_AMDXDNA_CREATE_BOfor buffer-object allocation. -
A correct diagnosis of the ecosystem gap, documented in
backend/amd_npu_whisper_findings.mdandbackend/npu_final_findings.md:onnxruntime-vitisaihad no x86_64 Linux wheels — the "platform-independent"py3-none-anywheel shipped ARM64 binaries (filereportsELF 64-bit … ARM aarch64).- XRT cannot enumerate the NPU, because Ryzen AI parts use the Linux DRM/accel
framework rather than the
/dev/xrt*interface XRT expects. - AMD's own Whisper support was early-access only at the time.
That diagnosis still holds up, and it is the most valuable thing in this repository.
No Whisper inference ever ran on the NPU. The code says so itself:
| Location | What it actually does |
|---|---|
npu_optimization/direct_npu_runtime.py:36 |
"For now, we'll use a simulated memory region" — a 256 MB bytearray, not NPU memory |
npu_optimization/direct_npu_runtime.py:77 |
"Simulate NPU computation" — the FFT is np.fft.rfft, on CPU |
npu_optimization/direct_npu_runtime.py:103 |
the mel filterbank is np.random.randn(...) — a random matrix, so that path's output was numerically meaningless |
npu_optimization/aie2_kernel_driver.py:114 |
_create_emulation_binary() writes a mock whisperx_aie2_emulation.xclbin when the real toolchain is absent |
npu_optimization/aie2_kernel_driver.py:175 |
sets device = "CPU_EMULATION" and npu_device = None |
The release workflow then packaged that mock .xclbin as "NPU binaries."
Transcription on this appliance actually ran Whisper on the CPU, with iGPU/ROCm compose variants for the LLM. That worked — it simply wasn't NPU-accelerated, and it wasn't 220x.
The blocker was never the hardware; it was the userspace stack. Re-check whether
onnxruntime-vitisai now ships x86_64 Linux wheels, or build the Vitis AI EP from
amd/xdna-driver. The IOCTL groundwork here is a
real head start. Benchmark before claiming anything — and commit the harness.
backend/ FastAPI backend, Whisper pipeline, NPU research modules
frontend/ React GUI
backend/npu_optimization/ NPU kernel + runtime experiments (emulated — see above)
backend/docs/ NPU research notes and hardware findings
docker-compose*.yml stack variants (Postgres/Qdrant, Ollama, ROCm, Gemma)
fresh_install*.sh appliance provisioning scripts (Ubuntu 25.04)
The NPU_*.md files in backend/ are kept as historical record. Several assert
success the code does not support — read them alongside this section, and trust
amd_npu_whisper_findings.md and npu_final_findings.md over the ones with "SUCCESS" or
"COMPLETE" in the filename.
Ships with weak default credentials (
meetingops123,admin123) intended for a single-tenant box on a trusted LAN. Change them before exposing it to anything.
./fresh_install_ubuntu2504.sh # provision an appliance from scratch
docker compose -f docker-compose-full-stack.yml up -dFrontend on :7778, backend on :9050. See INSTALL.md and
QUICK-START.md.
- The tree previously contained
backend/NPU_FINAL_STATUS.mdandbackend/npu_final_status.md— two different documents differing only in case, which broke clones on macOS and Windows. The lowercase one is nowbackend/npu_integration_progress_notes.md; both are preserved and the repo clones cleanly on case-insensitive filesystems.
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later) — see LICENSE. A commercial license is available for organizations that cannot meet the AGPL's network-copyleft terms — contact licensing@unicorncommander.ai.