Note: I'm still a student, so I may not be able to respond to issues or ship updates right away. I'll keep maintaining this project in my spare time as best I can.
A three-mode benchmark for Linux / Omarchy: hardware, AI agent coding, and everyday multitasking
Omarchy bar plugin or a single .pyz file · Python standard library only · Runs as a normal user
| Mode | What it tests | Main results |
|---|---|---|
🧪 Typical typical |
CPU, memory, disk, small-file synchronous writes, sustained load | Throughput, latency, temperature |
🤖 Agent coding agent |
Fixing a bug, adding a feature and writing tests in a fixed project; uses Pi by default | Pass rate from independent acceptance checks, total time, tool time, model events |
🖥️ Daily daily |
Coding alone → 8 web pages + coding → web pages + coding + simulated update load | Coding slowdown factor, page responsiveness, CPU / memory / disk wait |
curl -L -o ~/Downloads/omarchy-lab.pyz \
https://github.com/Charlie0113-T/omarchy_labs/releases/latest/download/omarchy-lab.pyzThe .pyz runs as is, with no unpacking. It is also a standard ZIP, so unzip -l omarchy-lab.pyz lists all of the source.
python3 ~/Downloads/omarchy-lab.pyz typical # typical benchmark
python3 ~/Downloads/omarchy-lab.pyz agent --live # agent coding (calls a model)
python3 ~/Downloads/omarchy-lab.pyz daily # daily multitaskingSee python3 ~/Downloads/omarchy-lab.pyz --help for all options.
On Omarchy (Quattro), Omarchy Lab can also live in your bar. Click the flask icon to start a test, open the latest report or the results folder, share the latest result, or stop a running test.
omarchy plugin add https://github.com/Charlie0113-T/omarchy_labs
omarchy plugin enable io.github.charlie0113-t.omarchy-labOr use Setup › Plugins › Add. Plugins install disabled so you can read the code first; enable puts the icon on the right side of the bar.
- A test starts only when you pick it, in a terminal window you can see. Closing that window or choosing Stop the running test stops it cleanly: the test browser closes, temporary files are removed and a partial report is saved.
- Agent with your model asks you to press Enter before it calls your model.
- The panel follows your system language; the test asks for its own language in the terminal.
omarchy plugin update io.github.charlie0113-t.omarchy-lab
omarchy plugin remove io.github.charlie0113-t.omarchy-labRemoving disables the plugin and deletes its folder, ~/.config/omarchy/plugins/io.github.charlie0113-t.omarchy-lab. Your results in ~/omarchy-lab/ are kept; delete that folder yourself if you no longer want them.
- It installs into
~/.config/omarchy/plugins/io.github.charlie0113-t.omarchy-lab/. - Enabling adds one entry to the bar layout in
~/.config/omarchy/shell.json, through Omarchy's ownplugin enable. Disabling or removing takes it out again. - Tests save results in
~/omarchy-lab/and use temporary folders in your home directory that are removed afterwards. Nothing runs at install, enable or login, and the plugin itself never usessudo.
| Needed for | What |
|---|---|
| Everything | Omarchy with the Quattro shell, Python 3.9+ (already on Omarchy) |
| Typical test | fio, sysbench |
| Daily test | Chromium or Chrome |
| Agent with your model | a configured Pi |
| Share button | wl-copy, xdg-open, notify-send (included in Omarchy) |
- Python 3.9 or newer
- Typical mode:
fioandsysbenchinstalled (on Omarchy:sudo pacman -S --needed fio sysbench) - Real agent runs: a configured Pi
- Daily mode: a desktop session with Chromium / Chrome
Important
Run it as your normal user. Do not put sudo in front of the command.
Prompts, --help, errors and reports are available in English, 简体中文, 繁體中文 and 日本語.
- Run it in a terminal without
--langand it asks once at start. Press Enter to keep your system language. --lang en,zh-CN,zh-TWorjapicks one and skips the question.--lang autofollows your system locale.- Set
OMARCHY_LAB_LANG=ja(for example) to use a language for every run.
python3 ~/Downloads/omarchy-lab.pyz daily --lang jaThe workload is the same in every language. The agent's task prompt and the body of the browser test pages never change, and JSON keys and status codes stay in English, so results from runs in different languages can be compared.
After every run, the tool saves issue.md in the report directory: a ready-to-post GitHub issue in this project's fixed format (Summary, Device and storage, Results, Notes, Feedback). It prints the steps to post it, in the language you chose.
- The report is in English first, so all shared results read the same. If you ran the test in another language, the same report follows in that language in a collapsed section.
- Nothing is uploaded automatically. Review the file before posting: it lists your hardware, kernel and mount details. Your home directory is shown as
~. - Post it as a new test report issue, or with
gh issue create -R Charlie0113-T/omarchy_labs --title "…" --body-file issue.md.
Agent mode first runs a fixed local toolchain replay, then the real task.
- A failure or timeout never counts as a fast result. Acceptance doesn't depend on the agent saying it finished.
- Total time includes model and network waits, so it is not a pure hardware score.
- Without
--live, only the local replay runs and no model is called.
Warning
By default the real task runs one round of up to ten minutes and uses your model quota.
For a formal comparison, pin the model and run three rounds:
python3 ~/Downloads/omarchy-lab.pyz agent --live --model 'your-full-model-id' --rounds 3Coding in daily mode uses the fixed replay and never calls a model. The update load is simulated by default with repeated unpacking and disk syncs.
To observe a real system update + browser + coding instead:
python3 ~/Downloads/omarchy-lab.pyz daily --observe-update --seconds 600When prompted, start the update in another terminal using Omarchy's own process (see the Omarchy Manual). The script only observes; it never runs the update for you.
Tip
Keep the test dashboard visible during the daily run. Don't minimize it.
Results are printed when the run ends and saved under ~/omarchy-lab/<timestamp>/:
~/omarchy-lab/<timestamp>/
├── report.txt # human-readable report
├── report.en.txt # English copy, when you ran in another language
├── issue.md # ready-to-post GitHub issue
├── results.json # structured results
└── samples.csv # per-second samples
| Exit code | Meaning |
|---|---|
0 |
Run completed and all tasks passed |
1 |
Run incomplete or a task failed |
2 |
Bad arguments or missing prerequisites |
The source lives in src/; the Omarchy plugin runs it directly. To build the release file dist/omarchy-lab.pyz and run the tests:
python3 scripts/build.py
python3 -m unittest discover -s testsUser-facing text is kept in src/i18n.py, one entry per message with all four languages side by side. The tests check that every message exists in every language with the same placeholders.
Released under the Apache License 2.0.
The Omarchy logo comes from omacom/omarchy (MIT license). This is a community tool and is not affiliated with Omarchy.
