Construction Business Agent
hewi333/Mom-n-Pop-Skills
Runs a construction company's back office by bridging Gmail, Drive and JobTread: routing email attachments to the PM system, checking project status and sending daily Telegram briefings.
Autonomously drain a .pm workstream item by item — triage every pending milestone, task, and inbox note, then implement and ship it, close it as already done, block it with an unblock condition, or…
$ npx skills add bex-co/beancount-io --skill loopx -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bex-co/beancount-io loopx --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/loopx .claude/skills/loopx && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "loopx" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopx into .claude/skills/loopx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loopx", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add bex-co/beancount-io --skill loopx -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bex-co/beancount-io loopx --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/loopx .agents/skills/loopx && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "loopx" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopx into .agents/skills/loopx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loopx", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bex-co/beancount-io --skill loopx -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bex-co/beancount-io loopx --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/loopx .cursor/skills/loopx && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "loopx" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopx into .cursor/skills/loopx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loopx", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/bex-co/beancount-io.git --path .agents/skills/loopx--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add bex-co/beancount-io --skill loopx -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bex-co/beancount-io loopx --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/loopx .gemini/skills/loopx && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "loopx" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopx into .gemini/skills/loopx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loopx", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bex-co/beancount-io loopxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bex-co/beancount-io --skill loopx -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/loopx .github/skills/loopx && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "loopx" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopx into .github/skills/loopx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loopx", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bex-co/beancount-io --skill loopx -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bex-co/beancount-io loopx --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/loopx .opencode/skills/loopx && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "loopx" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/loopx into .opencode/skills/loopx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "loopx", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
loopxAutonomously drain a .pm workstream item by item — triage every pending milestone, task, and inbox note, then implement and ship it, close it as already done, block it with an unblock condition, or…
Loopx is an agent skill from bex-co/beancount-io. Autonomously drain a .pm workstream item by item — triage every pending milestone, task, and inbox note, then implement and ship it, close it as already done, block it with an unblock condition, or delete it as invalid, and keep going until nothing actionable remains (do not stop early to ask the user to resume). Use when the user explicitly invokes $loopx or asks to loop, drain, or work through a whole workstream's backlog (e.g. $loopx w1). Sequential, not interval-based; do not use for a timed poll, a single…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Business, Finance & HR, covering Project management and Email management. The repository describes itself as: 💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2103ca1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
yarngitpython3makegitleaksFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use yarn and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Loopx loads about 4.4k tokens when it runs. Until then it costs about 139 tokens; SKILL.md has 2,747 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from bex-co/beancount-io at commit 2103ca1, republished under its MIT licence (© bex-co). 2,747 words, ~4,447 tokens.
.claude/skills/loopx/SKILL.md (or your agent's skills folder)..pm workstream item by itemUsage: /loopx <wN>
/loopx <wN> — repeatedly pick the next actionable pending item in workstream <wN>, triage it, act on the outcome, /ship it, and continue until nothing actionable remains. An item is a pending milestone, a pending task inside a live milestone, or an open inbox note. Every item ends in exactly one of four places: implemented and shipped, closed as already done, moved to blocked/ with the condition that would clear it, or deleted as invalid. Blocked items and their dependents are skipped automatically, without waiting for user input. This is a long-running autonomous loop over the .pm board; it composes /pm (the only writer to .pm/), your own implementation work, and /ship. It is sequential, not interval-based — for a timed poll use /loop. If you can name the next pick, keep looping — do not pause for a checkpoint or tell the user to re-run /loopx.
A pending item is a claim that the work is still wanted and still undone. Boards go stale: work lands through another item or a direct commit, a decision or a DO_NOT_DO.md rule retires the idea, the surface it targets gets removed or renamed. Never start implementing on the strength of a checkbox alone — every item earns its implementation by passing triage first.
Parse the target workstream from $ARGUMENTS (e.g. w1). If $ARGUMENTS is empty, STOP and ask which workstream to drain — never guess.
git branch --show-current is main. If not, STOP and ask (same rule as /ship).git status — note pre-existing uncommitted changes. Do not sweep unrelated changes into an item's ship; if the tree is dirty with work you didn't do, surface it and ask before starting..pm/<wN>/README.md exists. If not, STOP and report..pm/DO_NOT_DO.md once. Every item you pick must respect it, and a conflict with it is a delete reason in triage.python3 scripts/loopx-guard.py start <wN>. It is a Stop hook that refuses to let the turn end while <wN> still holds an actionable item, and it names the next pick when it does. Only a genuine Exit clears it, so this is the one mechanism that survives your own judgement that you are finished.Repeat until the exit condition below:
Read .pm/<wN>/README.md and list the tree: .pm/<wN>/m*/, .pm/<wN>/*.md, .pm/<wN>/done/, .pm/<wN>/blocked/. The checkbox and the on-disk state must agree; if they disagree, trust the task files, flag the drift, and repair it through /pm before continuing.
Pick in this order, and announce what you picked:
- [ ] **mN**), with a live directory (.pm/<wN>/mN/, not under done/ or blocked/), not deferred or blocked earlier this run. Inside it, work its pending tasks in depends_on order; the next actionable task is the first non-done task whose dependencies are all done. Each task is itself an item and gets its own triage..pm/<wN>/NNN.md), when no milestone is actionable. Notes are sub-hour units — a bug fix, a doc correction, a decision to record. They are work items for this loop, not scenery. Pull one forward out of order when a milestone depends on it..pm/<wN>/blocked/). Re-read the condition and verify it against the repository before reviving anything; /pm unblock moves it back, and it then re-enters triage like any other item. Do not retry an unchanged blocker.Establish which items can proceed before deciding none can: honor explicit depends_on links and prerequisites stated in scope or acceptance criteria, including transitive ones. Numbering alone does not imply a dependency. Scan every later pending item before concluding the workstream is done.
If nothing is actionable, go to Exit.
Read it fully: a milestone's README.md plus every open task file, a task's own file, or the note. These define scope, order, and acceptance. Milestones ship features end to end — include the dashboard/mobile tasks alongside the backend, CLI, and skills ones; do not stop at the API. Respect the milestone's ## Definition of done and each task's ## Acceptance criteria.
Then, before writing any code, establish what is actually true on main and pick one of four outcomes. Triage runs on evidence, not impression: git log the source the item cites and the paths it names, grep for the commands, routes, and strings it describes, open every path under ## Files, run the observable checks in ## Definition of done, and reproduce a bug note's repro yourself. Announce the outcome and the evidence in a few lines before acting on it.
| Outcome | When | What you do |
|---|---|---|
| Work on it | The goal is still wanted and its acceptance does not hold yet. Stale details — moved paths, renamed commands, a package that changed shape — do not change this: follow the intent and note the deviations in the per-item summary. | Give a one-line plan and continue to step 3. Close any sub-item already satisfied by shipped code with /pm done, citing the commit, paths, or tests that satisfy it, so the record shows why it closed without work this session. |
| Close as already done | The acceptance criteria already hold on main — including the standing closing tasks (adoption surfaces checked, meaningful tests exist) — and the definition of done holds when you actually run its checks. A note's bug no longer reproduces at HEAD. Missing tests or an unchecked adoption surface make this work on it, not close. | /pm done <target> — tasks in dependency order, Closeout last; a note gets its resolution line and moves to done/. Skip to step 4 and ship the board move alone: chore(pm): close <target> — already satisfied by <SHA>. No code rides along. |
| Block it | The work is still wanted but cannot proceed here: missing credentials or external access, an unobservable acceptance criterion, a deploy or store review only the user can run, an unresolved failing check, a ship failure, or a scope question only the user can answer. A question you cannot settle from evidence is a blocker, not a reason to skip quietly. | /pm block <target> <reason>, writing the exact blocker, an Unblock: condition, and who can clear it. Preserve any partial work (see Handling a block). Skip to step 4 and ship the move alone: chore(pm): block <target> — <one line>. |
| Delete as invalid | The work should not be done at all: it conflicts with .pm/DO_NOT_DO.md; a decision recorded on the board, in an ADR, or in a commit retired it; it is fully superseded by or duplicates other work (shipped or still open — keep the better one); or the surface it targets no longer exists. | /pm drop <target> <reason>, naming the rule, ADR, commit, or item that justifies it. Skip to step 4 and ship the deletion alone: chore(pm): drop <target> — <reason>. If the reason generalizes into a rule, propose a DO_NOT_DO.md entry in the final summary; do not write one yourself. |
Closing, blocking, and deleting all rewrite a public board, so the bar is evidence you can cite. An item the user explicitly routed or approved (user routed to, user approved, user decision) that you merely suspect is unwanted is a block with the question as its unblock condition, never a delete. Deleting is for work that is provably invalid; blocking is for work that is still wanted and stuck. Never delete an item to avoid the work in it.
The last tasks of every milestone are the standing closing tasks defined in .agents/skills/pm/SKILL.md (Adoption surface when present, Simplify, Test coverage, Closeout). They are real work, not bookkeeping: run /simplify for Simplify, write meaningful tests for Test coverage, and walk every surface the Adoption surface task names.
Do the actual engineering, one item at a time, following depends_on order inside a milestone:
Follow all AGENTS.md rules — root and the scoped <package>/AGENTS.md for every package you touch (lockfiles are never hand-edited, changes stay scoped to one package, cd into the package before running its scripts, no secrets, every scope's guidance stays in a real AGENTS.md).
Run the checks the change touches and make them pass before considering the item done:
dashboard/ → yarn format:check, yarn lint, yarn test, yarn buildmobile/ → yarn format:check, yarn lint, yarn typecheck, yarn test:unitcli/ → make check-allskills/ or .agents/skills/ → python3 skills/scripts/ci-check.py (from the repo root)backend-cluster/*, deploy/ → the commands in that package's scoped AGENTS.mdAGENTS.md or skill change → python3 scripts/check-agent-guidance.py (from the repo root)gitleaks dir . --redact --verboseNever mark an item complete on unverified code.
A bug note is not fixed until its own repro fails to reproduce and a regression test covers it. Prove the test is real — revert the fix and watch it fail.
You may delegate independent sub-tasks to subagents (Agent tool) to parallelize, but you own correctness.
Keep the board in sync as you go by invoking /pm done <target> for each finished task or note — /pm is the only skill that writes to .pm/, so never edit task frontmatter, milestone **Status:** lines, workstream checkboxes, or done/ and blocked/ placement by hand. Running /pm done on the milestone's Closeout task last is what moves the whole milestone to .pm/<wN>/done/mN/ and flips its workstream checkbox to [x]. Do not close out until the milestone's definition of done actually holds; if it cannot hold here, the milestone is a block, not a close.
Invoke /ship (.agents/skills/ship/SKILL.md) for this item's changes — code and the .pm/ moves together, or the board move alone when triage ended the item without code. Because you made the changes this session, /ship runs session-aware: it stages exactly what you touched and writes the commit message from your knowledge. /ship ends at a successful push — it has no test gate of its own and does not watch CI, so the checks in step 3 are the only gate; run them before invoking it.
Ship each outcome before starting the next item. A milestone large enough to span several sessions may ship at task boundaries, provided every ship is green and self-contained. Proceed after /ship reports the shipped HEAD, or after isolating a block under the handling below.
If /ship surfaces a failure it cannot fix (a rebase conflict it can't resolve, a rejected push), that is a block.
Loop back to step 1 to pick the next pending item. After every ship (or block isolation), immediately re-scan and pick again — do not end the turn, ask the user to resume, or wait for another /loopx invocation while step 1 would still find an actionable item. Stopping because the queue is long, the session is long, or you already shipped several items is not an exit.
Between items, write one sentence: what shipped and the id you are picking next. Save tallies and per-item recaps for the Exit report — a mid-run summary tends to become a premature stop.
A block is anything you cannot resolve autonomously. It can surface at triage or mid-implementation; either way the item leaves the open tree through /pm block with its unblock condition, and the loop keeps going.
status: blocked, reason in the milestone README.md) and keep working the ones that can proceed. When every open task is blocked, block the milestone itself.m2 is blocked and m3 depends on it but m4 is independent, skip m2 and m3 and work m4 automatically.Stop the loop and give a final summary only when one of these holds:
<wN>. Report every item's outcome: shipped implementations with their HEAD SHAs, items closed as already done with the evidence, blocked items with their unblock conditions and owners, deleted items with their reasons (and any DO_NOT_DO.md rule you propose)./loopx <wN> can resume — but never choose this exit yourself while step 1 still has a known next item.Not an exit: "checkpoint", "budget", "long enough", "several items shipped already", or "resume with /loopx <wN> to pick up at NNN" while open inbox notes or actionable milestones remain. If you can name the next pick, you must pick it and continue.
When one of the three exits genuinely holds, clear the guard with python3 scripts/loopx-guard.py end, then give the final report. Until you run that, the Stop hook will keep handing the turn back with the next pick — which is the intended behaviour, not a fault to work around. Never clear it to end a run that has an actionable item left.
226 (or any later note/milestone) is next is a reason to pick it now, not to stop and tell the user to re-invoke /loopx. Drain until Done, Blocked, or a hard stop above.done/, blocked/, or deleted. Leaving an item open and untouched because it looked hard is not an outcome; that is a block, and it needs a written unblock condition./ship will not stop you — the step 3 checks are the gate, so run them yourself before every ship. Run the gates as their own command and read the result before you commit: chaining && git commit onto the end of the gate command makes the commit run on a non-zero gate, which is exactly how a red push happens. If a gate fails, decide whether it is your change or a known flake, and say which in the item's record./pm owns the board. All .pm/ writes go through /pm done, /pm block, /pm unblock, and /pm drop. An item is done when it sits under done/, blocked when it sits under blocked/ with its condition, and deleted when /pm drop has removed it — not when you stop looking at it..pm/ or a commit may contain secrets, user data, or references to private repositories — block reasons, delete reasons, and triage-close evidence included.<wN>. Only pick items from the requested workstream. Workers are general-purpose, but this run is scoped to the queue the user named.$ARGUMENTS
© bex-co, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/loopx of bex-co/beancount-io.
Open the folder on GitHubat commit 2103ca1
Loopx next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Loopx this skillbex-co/beancount-io | 295 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Construction Business Agenthewi333/Mom-n-Pop-Skills | 122 | — | ~2.3k | Automated safety check: Notes | MIT | |
| Ceos Calendarbradfeld/ceos | 154 | — | ~2k | Automated safety check: Pass | MIT | |
| Marketing Project Managerjeffstric/ZJT | 227 | — | ~875 | Automated safety check: Pass | Custom licence | |
| Fda Catalyst Vaccinesagentii-ai/agentii-investment-intelligence | 207 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Iclr Workflowbrycewang-stanford/Awesome-Journal-Skills | 1.2k | — | ~1.1k | Automated safety check: Pass | MIT |
hewi333/Mom-n-Pop-Skills
Runs a construction company's back office by bridging Gmail, Drive and JobTread: routing email attachments to the PM system, checking project status and sending daily Telegram briefings.
bradfeld/ceos
A skill your agent uses when managing the rolling market calendar - conferences, launches, fundraising milestones, partner events, and team constraints
jeffstric/ZJT
营销项目经理智能体,负责统筹营销创作流程,根据用户需求选择并加载对应的SOP,协调其他智能体完成营销内容创作. An agent skill from jeffstric/ZJT.
agentii-ai/agentii-investment-intelligence
Vaccine catalyst analysis across the two-gate path: CBER BLA review and the ACIP recommendation gate that turns FDA approval into commercial availability.
brycewang-stanford/Awesome-Journal-Skills
A skill your agent uses when planning an ICLR project timeline from topic selection through OpenReview submission, discussion, revision, decision, camera-ready, poster, video, and public artifact…
ericrisco/rsc-harness
A skill your agent uses when a repeated process lives in one person's head, breaks when they are away, gets re-explained to every new hire, or produces inconsistent results — and needs writing down…
bex-co/beancount-io
Close an accounting period in a Beancount ledger by reconciling each active account through beancount-reconcile, checking assertions and recurring gaps, reviewing flags, then proposing a commit with…
bex-co/beancount-io
Import a bank or card CSV, OFX/QFX, or QIF export into an existing Beancount ledger.
bex-co/beancount-io
Write or repair a reusable Beangulp importer from a sample bank export, with reviewed golden files and a passing test harness.
bex-co/beancount-io
Scaffold a new Beancount ledger with bea init and validation, with optional Fava browser setup when requested.
bex-co/beancount-io
Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.
bex-co/beancount-io
Reconcile one Beancount account against a CSV statement or pasted PDF text.
Autonomously drain a .pm workstream item by item — triage every pending milestone, task, and inbox note, then implement and ship it, close it as already done, block it with an unblock condition, or…. Loopx is an agent skill from bex-co/beancount-io.pm workstream item by item — triage every pending milestone, task, and inbox note, then implement and ship it, close it as already done, block it with an unblock condition, or delete it as invalid, and keep going until nothing actionable remains (do not stop early to ask the user to resume).
Loopx fits situations like: the user explicitly invokes $loopx; work through a whole workstreams backlog (e.g; ordinary code edits.
Run `npx skills add bex-co/beancount-io --skill loopx -a claude-code`. Or copy the skill folder (.agents/skills/loopx in bex-co/beancount-io) into .claude/skills/loopx in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bex-co/beancount-io --skill loopx -a codex`. Or copy the skill folder (.agents/skills/loopx in bex-co/beancount-io) into .agents/skills/loopx in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bex-co/beancount-io --skill loopx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/loopx, .gemini/skills/loopx, .github/skills/loopx and .opencode/skills/loopx in your project.
Going by SKILL.md and its folder, Loopx needs the command-line tools its instructions call (yarn, git, python3, make and gitleaks). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Loopx is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Loopx: Construction Business Agent (hewi333/Mom-n-Pop-Skills, 122 stars), Ceos Calendar (bradfeld/ceos, 154 stars), Marketing Project Manager (jeffstric/ZJT, 227 stars) and Fda Catalyst Vaccines (agentii-ai/agentii-investment-intelligence, 207 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bex-co (a GitHub organization) maintains it in bex-co/beancount-io, which has 295 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.
Source: bex-co/beancount-io on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.