Skip to content

About

No description, website, or topics provided.

Resources

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

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.

Omarchy

Omarchy Lab

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

version python platform license

English · 简体中文 · 繁體中文 · 日本語


Three modes

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

Quick start

1. Download

curl -L -o ~/Downloads/omarchy-lab.pyz \
  https://github.com/Charlie0113-T/omarchy_labs/releases/latest/download/omarchy-lab.pyz

The .pyz runs as is, with no unpacking. It is also a standard ZIP, so unzip -l omarchy-lab.pyz lists all of the source.

2. Run the mode you need

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 multitasking

See python3 ~/Downloads/omarchy-lab.pyz --help for all options.

🧩 Omarchy plugin

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 Lab panel in the Omarchy bar

Install

omarchy plugin add https://github.com/Charlie0113-T/omarchy_labs
omarchy plugin enable io.github.charlie0113-t.omarchy-lab

Or 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.

Use

  • 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.

Update and remove

omarchy plugin update io.github.charlie0113-t.omarchy-lab
omarchy plugin remove io.github.charlie0113-t.omarchy-lab

Removing 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.

What the plugin changes

  • 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 own plugin 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 uses sudo.

Dependencies

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)

Requirements

  • Python 3.9 or newer
  • Typical mode: fio and sysbench installed (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.

🌐 Language

Prompts, --help, errors and reports are available in English, 简体中文, 繁體中文 and 日本語.

  • Run it in a terminal without --lang and it asks once at start. Press Enter to keep your system language.
  • --lang en, zh-CN, zh-TW or ja picks one and skips the question. --lang auto follows your system locale.
  • Set OMARCHY_LAB_LANG=ja (for example) to use a language for every run.
python3 ~/Downloads/omarchy-lab.pyz daily --lang ja

The 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.

📮 Share your result

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

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 3

🖥️ Daily mode

Coding 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 600

When 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

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

🛠️ Build from source

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 tests

User-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.

License

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.

About

No description, website, or topics provided.

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages