Skip to main content

goodeye

PyPI version Python versions License

Goodeye is a private home for the skills your AI follows and the verifiers its work must pass.

goodeye is the command-line surface for Goodeye. The same capability reaches your agent over an MCP server and a REST API too, so it works wherever your agent runs. This CLI talks to the public /v1 REST API.

How it works

A skill is a markdown runbook your agent follows. A verifier is a check its output has to clear. Goodeye keeps both in one account you own, and three things follow from that.

Private by default. Nothing is public until you publish a template, which is a separate step you take on purpose. To share without going public, grant a named user or team access, and the verifiers the skill references go with it at the same version. Revoking works the same way.

Always in sync. goodeye skills sync mirrors your hosted skills into the directories your tools already read, so Claude Code, Codex, Cursor, and anything else reading skill files from disk run the same current version. Configuring a target is all it takes: automatic sync is on from then on, so edit a skill once and every machine picks it up on its own.

Verifiers, hosted. A verifier can be deterministic (format, schema, tests, numeric bounds) or an LLM judge for the calls no test can make, like tone or image quality. Deploy a semantic verifier once, and every skill that references it runs that exact version, on your laptop, in CI, or on the machine of someone you granted it to.

The full picture is at https://goodeye.dev/docs/overview.

Your AI agent is the primary caller

The CLI is built to be driven by an AI coding agent on your behalf, though every command also works when you run it yourself. The intended loop: you ask your agent to run a Goodeye skill, it fetches the body with goodeye skills get <name> (or goodeye templates get @handle/slug), and it executes those instructions as your runbook instead of printing or summarizing them. The get commands wrap the body in agent-facing markers so the calling agent knows to run it. Pass --output PATH or --json when you want the raw content instead.

Install

Requires Python 3.12 or later.

uv tool install goodeye
# or: pipx install goodeye
# or: pip install goodeye

The goodeye command is then on your PATH. Run goodeye update to upgrade to the latest release, or goodeye update --check to see whether one is available.

Quickstart

Bring a skill you already have

A skill file on disk is a directory holding a SKILL.md plus optional siblings, which is exactly what publish expects. Importing one is a single command.

goodeye login                                     # or: goodeye register (same browser sign-in)
goodeye skills publish ~/.claude/skills/my-skill  # also ~/.agents/skills, ~/.cursor/skills, or any path
goodeye skills list

It lands as a private hosted skill. Nothing is public until you publish a template, which is a separate step.

Sync it to every machine and agent

Point Goodeye at the directories your tools read, then pull:

goodeye skills sync target add --preset claude    # ~/.claude/skills
goodeye skills sync target add --preset agents    # ~/.agents/skills
goodeye skills sync target add --preset cursor    # ~/.cursor/skills
goodeye skills sync

Run the same commands on your other machines and they all read the current version. Once you have a target, automatic sync is on, so they stay that way without a second command: it only pulls new and updated skills, never overwrites local edits, and reports a conflict rather than clobbering it. Turn it off with goodeye skills sync auto off and it stays off.

The skill you just published came from a directory that is now a target, so a copy of it is already there. Goodeye did not write that copy, so the first pull reports it as modified and leaves it alone. The hosted version is what you published, so adopt it once with goodeye skills sync pull --force <slug>; from then on it is tracked like everything else.

Share it

goodeye skills grant my-skill @teammate view
goodeye skills grants my-skill

Their agent now runs your skill, and any semantic verifiers it references travel with the grant at the same version. Improve the skill and they get the improvement on their next pull.

Author a skill from scratch

goodeye design                         # prints the designer prompt; pipe it to your agent to draft a skill and its verifiers

# save the draft from your agent's output (stdin keeps a stray file out of the working directory):
goodeye skills publish - \
  --name my-skill \
  --description "One sentence on what this does and when to use it." <<'EOF'
# Body

The skill body your agent will execute.
EOF

goodeye skills get my-skill            # fetch it back for an agent to run

Run a public template, no account needed

Browsing, fetching, and running public templates need no sign-in.

goodeye templates list
goodeye templates get @randalolson/high-signal-chart-workflow

templates get prints the template body (the skill), and your agent follows it: it finds a dataset, renders a chart, and runs the template's pinned verifier, revising until the chart passes. That verifier run is the step your agent makes, drawing on a small per-network credit grant:

# what your agent runs against the finished chart:
goodeye verifiers run 89dcc843-d056-44d9-ae34-ebcff4903885 \
  --version 1 --media-url '<public-https-chart-url>' --anonymous

Fork it into a skill of your own with goodeye templates fork @randalolson/high-signal-chart-workflow. That is the one step here that needs an account, since the fork lands in your own registry. To publish one of your own, claim a handle first with goodeye me claim-handle your-handle, then run goodeye templates publish my-skill.

What the CLI can do

These command areas cover the whole surface. Run goodeye --help or goodeye <area> --help for the exact commands and flags, and see the full reference at https://goodeye.dev/docs/cli.

Area What it does Docs
skills Find, save, version, run, share, and improve your private skills, including teach, optimize, audit, and local file sync https://goodeye.dev/docs/skills
templates Browse the public catalog, publish a skill as a template, and fork one to customize https://goodeye.dev/docs/templates
verifiers Deploy and run the LLM-judge checks a skill calls to grade agent output https://goodeye.dev/docs/verifiers
image-generators Deploy reusable image generators and generate images a skill can call https://goodeye.dev/docs/image-generators
images Upload and manage hosted images with stable URLs https://goodeye.dev/docs/images
teams Create teams and manage membership so a skill can be shared with a group https://goodeye.dev/docs/teams
referrals View your referral code and redeem someone else's https://goodeye.dev/docs/referrals
invitations Accept, decline, or cancel team and ownership-transfer invitations https://goodeye.dev/docs/cli
billing Upgrade to or cancel Pro (plan upgrade / plan cancel), open the billing portal, buy a one-time credit top-up, or manage automatic top-ups (auto-topup show / set / off) https://goodeye.dev/docs/cli
auth, me, usage Manage API keys, claim your handle, and check credit usage https://goodeye.dev/docs/cli
design Print the skill-designer prompt for your agent https://goodeye.dev/docs/cli

Session commands sit at the top level: login, register, logout, whoami, and update.

Authentication and configuration

Sign in interactively with goodeye login or goodeye register. Both open a browser device-code flow and save your credentials on success. For agents and automation without a browser, use the email-code flow:

goodeye register --email you@example.com
goodeye register-verify --email you@example.com --code 123456
# existing account: goodeye login, then goodeye login-verify

goodeye whoami shows who you are, and goodeye logout removes the local credentials. Agents and scripts can authenticate with an API key instead: create one with goodeye auth create-key --name my-agent and pass it as the GOODEYE_API_KEY environment variable.

The CLI reads credentials from GOODEYE_API_KEY first, then from ~/.config/goodeye/credentials.json (written with 0600 permissions). It targets https://api.goodeye.dev by default; override that with GOODEYE_SERVER. Full authentication details are at https://goodeye.dev/docs/cli.

CLI, MCP, or REST

The CLI is a convenience layer over the public /v1 REST API. For a stable programmatic contract, call that REST API directly (https://goodeye.dev/docs/rest-api). To drive Goodeye from an MCP client, connect to mcp.goodeye.dev/mcp (https://goodeye.dev/docs/mcp). Your skills and their verifiers reach your agent on every surface.

Documentation

Contributing

See CONTRIBUTING.md for local dev setup and the pull-request process. Issues and pull requests are welcome.

License

MIT. See LICENSE.

Release files for goodeye 0.25.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goodeye 0.25.7
File Size Uploaded
goodeye-0.25.7.tar.gz 298.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goodeye 0.25.7
File Interpreter ABI Platform
goodeye-0.25.7-py3-none-any.whl Python 3 none any Details

Total release size: 457.2 kB

Release files / goodeye-0.25.7.tar.gz

Download URL goodeye-0.25.7.tar.gz
Size 298.4 kB
Tags Source
SHA-256 checksum
How to use checksums
31776e89e84e69d2b3787b1d05f8c50352104710e5e05d67c73ed6ed08a657cf
BLAKE2b-256 checksum
How to use checksums
6ad1728452a0f7381ee9827ce909122b0a6403cb962f27290d9be9bd5858ef3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / goodeye-0.25.7-py3-none-any.whl

Download URL goodeye-0.25.7-py3-none-any.whl
Size 158.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b396dee58fc684c0eda62627a8bf103a7a3afa78e4dd70a8b0c90b20fa5ff27b
BLAKE2b-256 checksum
How to use checksums
cf3e6a5c83560ea6a0477583d5eff1f3dbffe86e2434d68b064e77525cac6423
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page