ConnectOnion is an open-source, template-first toolkit for building, debugging, deploying, and operating AI agents. Developers use its command-line tools and Python runtime to create agents, add tools, connect services, deploy them, and make them callable by other agents, while the catalogue entries are related agents, skills, and instructions.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add openonion/connectonion --skill co-envgit clone --depth 1 https://github.com/openonion/connectonionWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openonion/connectonion/co-env)<a href="https://agentmods.dev/skills/openonion/connectonion/co-env"><img src="https://agentmods.dev/badge/skills/openonion/connectonion/co-env/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openonion/connectonion/co-env"><img src="https://agentmods.dev/badge/skills/openonion/connectonion/co-env.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01487 |
| Opus 5.5 | $0.00000 | $0.00595 |
| Sonnet 5.5 | $0.00000 | $0.00297 |
| Haiku 4.5 | $0.00000 | $0.00149 |
Grade A, and why
co-env scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
co env
Always read the output, not just the exit code. co env path and
co env get print a bare value and no tip, so they compose with $(...);
other human-output commands end with one Next: line. JSON output contains its next command as a field.
Which command
| You want to | Run |
|---|---|
| See which file is in use and what it holds (all values hidden) | co env |
| See full values (never paste into shared logs) | co env show --reveal |
| The file's path, for a script | co env path |
| One value as a command would see it (whole provider record, otherwise process then file) | co env get KEY |
| Save a setting, creating the file if needed | co env set KEY VALUE |
| Save one that should not sit in the file in plain text | co env set KEY VALUE --secret |
| Change which key opens a stored secret | co env rotate KEY |
| Remove a setting | co env unset KEY |
| Connect a Google / Microsoft account | co auth google / co auth microsoft — not co env set |
| Use a Feishu/Lark app id or secret copied from the Developer Console | co env set LARK_APP_SECRET VALUE --from-console |
| Disconnect one from this file | co env unset GOOGLE_EMAIL (removes the whole record) |
| Do any of this on a project file | co --env-file /abs/path/.env env … (selector before env) |
The 80% commands
co env # file, settings, sources, next step
co env set OPENAI_API_KEY "$KEY" # quote values; spaces are fine
co env get MODEL # bare value
co --env-file ./project.env env set MODEL co/gemini-3.7-flash
Gotchas that change a result
- SOURCE column.
process (overrides file)means the shell exports the same name; the file's value is not what commands see.setstill saves it and prints theunset KEYyou need in the shell. - Provider records are all-or-nothing.
setrefuses the fiveGOOGLE_*and fiveMICROSOFT_*account fields (exit 2, names the auth command).unseton any one of them removes all of them and says so. AGENT_CONFIG_PATHcannot be set here. It chooses which directory is read;setrefuses it and prints the shellexportto use.- A broken file stops everything else. Any other command exits 2 with
<file>: invalid syntax on line N. Next: co env.co envstill runs, repeats the line number, never the line, and refusessetuntil the line is fixed in an editor. - Nothing here selects a file.
co envshows the file the invocation already chose. To switch, put--env-filebefore the command. --secretchanges where a value rests, not whatgetreturns. The value is encrypted at.co/keys/secrets/<name>.enc;co env get KEYstill prints it plainly, because it is the substitution form (export K=$(co env get K)) and a redacted answer would be a wrong one.co env showis the browsing command and redacts by default.- The encrypted store is consulted last — after the process environment and
the file — so storing a name that is already set elsewhere changes nothing
about what commands see.
set --secretsays so when your shell exports it. - A stored secret is unlocked by this agent's own key, derived from
.co/keys/agent.key. Nothing is written to hold it, so there is nothing extra to back up; your recovery phrase reaches it on another machine. Deleting.co/keys/recovery.txtdoes not orphan it. Deletingagent.keydoes. rotatere-encrypts at the next index and keeps the value. What changes is which key opens it; anything holding the previous ciphertext can no longer read it. It is not a way to change the value — usesetfor that.- Feishu/Lark app credentials are refused by default and named
co auth feishu/co auth lark, because a hand-typed app secret has no source this command can check.--from-consoleis the way in when you already keep the application in the Developer Console. It is accepted on those names only; anywhere else it is an error, not a no-op.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +23 lines 884dea4fe1b0
- 1mo ago First seen · 61 lines · 0 tokens per session scan A 5e9445263e24
co-env is a skill published in the GitHub repository openonion/connectonion (1,497 stars, last pushed today), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,487 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-09.
Other skills, from other repositories
agentscope-java
Expert Java developer skill for AgentScope Java framework - a reactive, message-driven multi-agent system built on Project Reactor. Use when working with reactive programming, LLM integration, agent orchestration, multi-agent systems, or when the user mentions AgentScope, ReActAgent, Mono/Flux, Project Reactor, or…
apply-patch
Apply multi-file or tricky edits atomically with git apply instead of many fragile editfile calls. Use when changing several files at once or when editfile fails to match.
git-checkpoint
Use git as a safety net - create a checkpoint commit before risky or large changes and roll back cleanly if a change makes things worse. Use before multi-file refactors.
pptagent
Create and revise editable PowerPoint presentations from a brief using HTML slide sources, rendering, and visual review. Use when the requested deliverable is a PPTX deck. The host authors the slides; text-only hosts can use an external visual reviewer.
company-employee
The protocol every employee of a PenguinHarness organization follows — read the handbook first, act on [orgtrigger] work runs, schedule tickets from the desk session and do the work in ticket sessions, block instead of idling, ask the board in the all-hands channel before anything heavy, costly, irreversible or…
a2ui
Make a reply easier to read and act on with rich blocks inside ordinary Markdown — a choice the user picks from, a form that collects several answers, a procedure as steps with warnings in place, a callout, a Mermaid diagram, a weather card, a live clock or countdown, and a dashboard of gauges for a system snapshot, a…