EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Free, private, offline file viewer for Windows: PDF, Word, Excel, PowerPoint, images, video and code. Open documents from Claude Code and request changes from inside the app.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Free, private, offline file viewer for Windows: open PDF, Word, Excel, PowerPoint, images, video, code and more. Documents from Claude Code open in UniView, and you request changes from inside the app.
Download for Windows · Website · Checksums
▶ Watch the 50-second launch video
UniView is one simple, Chrome-like app for viewing documents, spreadsheets, presentations, books, images, audio, video, code and archives. Files stay on the device: no account, no telemetry, and it works offline. When you connect an AI agent, the agent uses its own network access; phone sharing uses local Wi-Fi only when you turn it on.
The Windows build is unsigned, so Windows warns before it runs: click More info, then Run anyway. Compare the download against SHA256SUMS.txt first, or skip the installer and build from source.
| Platform or feature | Status |
|---|---|
| Windows | Download available |
| Android | No download yet; build from source |
| macOS | Build from source; not tested for release |
| iOS | Build from source; not tested for release |
| Claude Code | Supported |
| Codex | Preview, not yet tested end to end |
| Kind | Formats | How |
|---|---|---|
| pdf.js 6.4: lazy page rendering, selectable text, find, zoom | ||
| Word | docx, docm, dotx | docx-preview (embedded HTML "altChunks" never rendered) |
| Spreadsheets | xlsx, xlsm, xlsb, xls, ods, csv, tsv | SheetJS CE 0.20.3, virtualized grid (50,000 rows scroll smoothly), sheet tabs, UTF-8 CSV |
| PowerPoint | pptx, ppsx, potx, pptm | UniView's own renderer: theme colors and fonts, layout/master placeholders, shapes, pictures, tables, groups, SmartArt drawings, notes, presenter mode (F5) |
| Books | epub | UniView's own reader: table of contents, chapter navigation, text size, scripts never run |
| Images | png, jpg, gif, webp, avif, bmp, ico, svg, tiff | Zoom, fit, 1:1, rotate; SVG shown as an image so its scripts cannot run |
| Audio and video | mp4, mov, webm, mkv, mp3, m4a, wav, ogg, flac, … | The device's own decoders (nothing bundled, no codec licensing) |
| Text and code | 70+ extensions | highlight.js (40 languages), line numbers, 2 MB pages for huge logs |
| Markdown, JSON | md, json | Rendered and sanitized Markdown; collapsible JSON tree |
| Archives | zip, cbz, jar, apk… | File list with filter; any entry opens in a new tab |
| Fonts | ttf, otf, woff, woff2 | Sample text at six sizes and a glyph grid |
| Legacy Office | doc, ppt | Recovered text with a clear note |
| Anything else | * | Hex view. A file that fails to render always offers "View as text" and "View as hex": never a blank tab |
resources\uniview-mcp.cmd, or ELECTRON_RUN_AS_NODE=1 because Electron's main process on Windows closes stdin in GUI mode) is in docs/AGENTS.md.npm run bench (see docs/BENCHMARK.md): app start to interactive 84 ms; open-to-first-view p50 42 ms warm, 356 ms the first time a format is opened (the viewer's code loads once); a 5.8 MB, 50,000-row workbook opens in 325 ms warm.
Requires Node 22+ (tested on 24.20).
npm install
npm run dev # web UI at http://localhost:5173
npm test # unit tests (Vitest)
npm run build # type-check and production build into dist/
npm run fixtures # generate test documents into fixtures/generated/
npx playwright test # end-to-end: web, Pixel 7 viewport, Electron
npm run bench # time-to-first-view benchmark (needs `npm run preview` running)
npm run electron # desktop app from the current build
AES golden eval: aes eval --workspace . --suite evals/detect.json --execute; agent workspace eval: aes eval --workspace . --suite evals/agents.json --execute.
Set PLAYWRIGHT_BROWSERS_PATH if your Playwright browsers live outside the default cache.
| Target | Command | Output |
|---|---|---|
| Windows | npm run dist:win | release/UniView-Setup-1.0.0.exe (installer), release/UniView-Portable-1.0.0.exe |
| macOS | npm run dist:mac (on a Mac or CI) | release/UniView-1.0.0-*.dmg |
| Android | npm run android:apk (JDK 21) | android/app/build/outputs/apk/debug/app-debug.apk |
| iOS | npx cap sync ios, then build ios/App in Xcode |
Builds are unsigned. Code signing, notarization and store submission are a separate, deliberate release step.
src/core format detection, PPTX/EPUB/ZIP parsing, errors: no React, no shell code
src/viewers one lazily loaded viewer per format family
src/ui tabs, omnibox, home, per-tab error boundary
src/shells the only code that talks to Electron or Capacitor (ShellBridge, FileSource)
electron/ desktop main process and sandboxed preload
android/ ios/ Capacitor projects with native "Open with" / Share handling
tests/unit/fence.test.ts fails the build if src/core, src/viewers or src/ui import a shell runtime, so the shell can be swapped later (see the decision record below).
uniview-file://<token>/ with HTTP range support, where the 128-bit token exists only for files the user opened (picker, drop, file association, typed path).<img>; DOCX embedded HTML is never rendered. ZIP-based formats have per-entry (512 MB) and per-package (1 GB) decompression limits.Recorded in Obsidian (uniview):
dec-67e7d1c9 TYPE 1, debate dec-9a21f812 unanimous). Gate before code signing: a 3-day Tauri v2 prototype against the same benchmark; migrate only if p50 time-to-first-view improves ≥25% or installer size drops ≥50% with no format regression.emf-converter); the optional second PowerPoint engine (@aiden0z/pptx-renderer) is deferred to V1.1 as an isolated chunk.MIT for UniView's own code. Bundled libraries keep their licences: see THIRD_PARTY_NOTICES.md.
Install UniView-Setup-1.0.0.exe (the portable version does not register file types). Open Settings → Apps → Default apps, search for UniView, and select it for each file type you want it to open. You can also right-click a file in Explorer, choose Open with → Choose another app, select UniView, and choose Always. Installing UniView does not change your existing defaults. Windows chooses defaults separately for each extension.
UniView can open other files using Open or drag and drop, including an inspection fallback for unknown formats; it cannot faithfully render every document format. See the format table and known limits above and below.