All plugins

@nuu-maan/coffer-omarchy-plugin

Coffer v0.1.0

Coffer's capture queue in the Omarchy bar. See what is still open, stash a selection or clip a region without leaving what you are doing.

Unverified

Start with the source

Version 0.1.0

Read the code and installation instructions at this exact commit.

Inspect source
Source commitd7dee38657af991fac7490c1ab8a1cd4780e9289

The standard Omarchy install command follows upstream code and may install a different commit. Check the repository’s instructions before installing.

Release history

1 release
Published versions of Coffer
VersionPublishedPublisherRecord
v0.1.0Sep 9, 2026Nuu-maanReceipt ↗

What was checked

Manifest structure, declared files, QML parsing, repository identity and bounded source analysis passed at this commit.

PENDING REVIEW

Waiting for human review. No verification has been granted.

Security capabilities

Last scan: Sep 9, 2026

Automated security analysis is not a guarantee that a plugin is safe. “No match” means the scanner did not recognize a pattern; it is not proof of absence.

network · No match
shell · 4 matches

Service.qml:10property var shell: null

Service.qml:98Quickshell.execDetached(["bash", "-c", "wl-copy --type image/png < \"$1\"", "wl-copy", path])

bin/omarchy-coffer:1#!/usr/bin/env bash

dev-install.sh:1#!/usr/bin/env bash

process · 9 matches

Service.qml:107Process {

bin/omarchy-coffer:10line=$(sed -n 's/^Exec=//p' "$file" | head -n1) || true

bin/omarchy-coffer:60stash) exec "$BIN" --stash ;;

bin/omarchy-coffer:61clip) exec "$BIN" --clip ;;

bin/omarchy-coffer:64exec "$BIN" "--done=$1"

tests/manifest.test.js:12process.exitCode = 1

tests/manifest.test.js:89if (!process.exitCode) console.log(passed + " manifest tests passed")

tests/model.test.js:8process.exitCode = 1

tests/model.test.js:184if (!process.exitCode) console.log(passed + " model tests passed")

filesystemRead · 1 matches

Service.qml:52FileView {

filesystemWrite · 1 matches

dev-install.sh:8mkdir -p "$DEST"

environment · 33 matches

Service.qml:9property string omarchyPath: Quickshell.env("OMARCHY_PATH")

Service.qml:16readonly property string home: Quickshell.env("HOME")

Service.qml:24readonly property string configDir: (Quickshell.env("XDG_CONFIG_HOME") || (home + "/.config")) + "/coffer"

bin/omarchy-coffer:6IFS=: read -ra dirs <<<"${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"

bin/omarchy-coffer:7for dir in "${dirs[@]}"; do

bin/omarchy-coffer:8for file in "$dir/applications/coffer.desktop" "$dir/applications/com.coffer.app.desktop"; do

bin/omarchy-coffer:9[[ -r "$file" ]] || continue

bin/omarchy-coffer:10line=$(sed -n 's/^Exec=//p' "$file" | head -n1) || true

bin/omarchy-coffer:11[[ -n "$line" ]] || continue

bin/omarchy-coffer:12line=${line%% %*}

bin/omarchy-coffer:13line=${line#\"}

bin/omarchy-coffer:14line=${line%\"}

downloads · No match
downloadExecution · No match
obfuscation · No match
credentials · 1 matches

tests/model.test.js:142var image = { id: "i", kind: "image", file: "../../.ssh/id_rsa" }

Automated validation details

Static pattern analysis and qmllint parsing. Up to 12 evidence samples per capability; all matching lines counted. Absence of a match does not establish absence of a capability.

  • Panel.qml: parsed, 645 diagnostics. Static parser only; Omarchy imports may be unavailable.
  • Service.qml: parsed, 79 diagnostics. Static parser only; Omarchy imports may be unavailable.
Manifest at this commit
{
  "schemaVersion": 1,
  "id": "io.github.nuu-maan.coffer",
  "name": "Coffer",
  "version": "0.1.0",
  "author": "nuu-maan",
  "license": "MIT",
  "description": "Coffer's capture queue in the Omarchy bar. See what is still open, stash a selection or clip a region without leaving what you are doing.",
  "kinds": [
    "service",
    "bar-widget"
  ],
  "keepLoaded": true,
  "entryPoints": {
    "service": "Service.qml",
    "barWidget": "Panel.qml"
  },
  "barWidget": {
    "displayName": "Coffer",
    "description": "Open items in the Coffer capture queue",
    "category": "Utility",
    "allowMultiple": false,
    "defaultSection": "right",
    "defaults": {
      "hideWhenEmpty": false,
      "maxItems": 20
    },
    "schema": [
      {
        "key": "hideWhenEmpty",
        "type": "boolean",
        "label": "Hide the icon when the queue is empty",
        "description": "Keep the bar icon out of the way until something is stashed. Left off, the icon stays put and dims instead.",
        "defaultValue": false
      },
      {
        "key": "maxItems",
        "type": "integer",
        "label": "Items shown in the panel",
        "description": "How many open items the panel lists before it stops and says how many more there are. The bar count is always the full number.",
        "min": 5,
        "max": 100,
        "step": 5,
        "defaultValue": 20
      }
    ]
  }
}

Review history

No human review recorded.

Report this plugin

A report requests a rescan and moderation. It does not remove a plugin automatically.

For authorized reviewers

Review this plugin

Inspect the source and scan above, choose a decision, then submit the prepared issue on GitHub. Only configured reviewer accounts can record a decision.

Reviewing commit d7dee38657af991fac7490c1ab8a1cd4780e9289. GitHub identity is checked by the registry before any decision is recorded.

Code review checklist

All notes are public. Do not include credentials or private vulnerability details.

Next: sign in with your reviewer account and submit the GitHub issue. Opening the draft does not record your decision.

  • Service.qml: process execution, privilege escalation, or network access; inspect source

These checks do not include runtime testing or a full dependency audit. Plugins run with your user permissions. Read the verification policy.

Manifest SHA-256 digest
981bb870284796aa8dc2b9f341f3907a5d66f9fc771ce0dab05eac7e01a0d6a5