Skip to content

Releases: computerlovetech/agr

v0.8.4

15 Apr 18:44

Choose a tag to compare

What's New in v0.8.4

Added

  • agr run <skill-name> command — invoke an already-installed skill in the project's configured tool CLI without re-downloading. Mirrors agrx for the persistent-skill case.
  • Shared agr.runner module housing the tool-CLI invocation logic used by both agrx and agr run.
  • Package/bundle dependencies can now expand and install transitive skill and ralph dependencies, including nested packages.
  • add, remove, sync, and upgrade now keep package, skill, and ralph lockfile entries in sync across transitive dependency changes.

Changed

  • agrx now delegates to agr.runner instead of carrying its own copy of the tool-CLI invocation helpers.
  • --tool help text for agr run and agrx is now sourced from the tool registry so new tools appear automatically.
  • Lockfile handling now tracks package parent relationships for entries with one or more parent packages.
  • Package conflict detection now distinguishes resource types with the same installed name.
  • Shared install and lockfile paths were refactored to support package dependency expansion consistently across commands.

Fixed

  • Installed-skill lookup now matches collision-fallback install names (user--skill, user--repo--skill) so agr run works for skills that hit a name conflict at install time.
  • Installed-skill lookup rejects path-traversal inputs (.., /, \) before touching the filesystem.
  • --interactive help text for agr run and agrx now describes the actual behavior (invoking the tool in interactive mode with the skill prompt prefilled).
  • remove now removes package-owned transitive dependencies without removing direct dependencies that share the same installed name.
  • sync and upgrade now preserve and refresh package parent metadata for transitive lockfile entries.
  • Bare names, trailing slashes, and local dependency paths now match more consistently during remove and upgrade operations.
  • Package expansion now rejects remote package local paths that resolve outside the downloaded repository.
  • Remote package local paths are converted to same-repository remote handles when they point to top-level resource directories.
  • Lockfile commit SHAs and remote handle components receive stricter validation to prevent unsafe substitutions and path traversal.

Full changelog: https://github.com/computerlovetech/agr/blob/main/CHANGELOG.md

v0.8.4b1

12 Apr 19:06

Choose a tag to compare

What's New in v0.8.4b1

Added

  • Package/bundle dependencies can now expand and install transitive skill and ralph dependencies, including nested packages.
  • add, remove, sync, and upgrade now keep package, skill, and ralph lockfile entries in sync across transitive dependency changes.

Changed

  • Lockfile handling now tracks package parent relationships for entries with one or more parent packages.
  • Package conflict detection now distinguishes resource types with the same installed name.
  • Shared install and lockfile paths were refactored to support package dependency expansion consistently across commands.

Fixed

  • remove now removes package-owned transitive dependencies without removing direct dependencies that share the same installed name.
  • sync and upgrade now preserve and refresh package parent metadata for transitive lockfile entries.
  • Bare names, trailing slashes, and local dependency paths now match more consistently during remove and upgrade operations.
  • Package expansion now rejects remote package local paths that resolve outside the downloaded repository.
  • Remote package local paths are converted to same-repository remote handles when they point to top-level resource directories.
  • Lockfile commit SHAs and remote handle components receive stricter validation to prevent unsafe substitutions and path traversal.

Full changelog: https://github.com/computerlovetech/agr/blob/main/CHANGELOG.md

v0.8.3

11 Apr 22:13

Choose a tag to compare

What's New in v0.8.3

Added

  • agr upgrade [handle...] command — re-fetches dependencies past the pinned commit (or re-copies local paths) and refreshes agr.lock. Supports full handles, short names, local paths, multiple targets, and --global. Targeted upgrades leave untargeted siblings alone.

Changed

  • Extracted _run_pre_install_setup and _run_install_pipeline from run_sync so sync and upgrade share classify/install/lockfile/report.

Full changelog: https://github.com/computerlovetech/agr/blob/main/CHANGELOG.md

v0.8.2

09 Apr 06:26

Choose a tag to compare

What's New in v0.8.2

Added

  • Ralph as a dependency type — manage ralphs (project-scoped agents) via agr add, remove, and sync
  • Configurable default_repo option — set once, use short handles everywhere
  • Ralph documentation across all doc surfaces (tutorial, concepts, troubleshooting, creating ralphs guide)
  • Lockfile documentation in the tutorial
  • installed_name property on Dependency to avoid repeated handle parsing
  • is_ralph and is_skill properties on Dependency for clearer type checks

Changed

  • Rebranded agr as "the package manager for AI agents, built for teams"
  • Split fetcher.py into focused modules for maintainability
  • Renamed LockedSkill to LockedEntry and read_skill_metadata to read_resource_metadata for resource-generic naming
  • Extensive complexity reduction across CLI commands (run_add, run_remove, run_sync, run_init, run_config_set, migrate_flat_installed_names)
  • Removed dead code: print_deprecation, detect_instruction_files, list_remote_repo_ralphs, unused ResourceType module, fetcher re-export shim

Fixed

  • Token leak to lookalike GitHub domains in _apply_github_token
  • Lockfile not updating on partial add failure
  • Empty installed_name for handles with trailing slashes
  • YAML quoting artifacts in frontmatter description extraction
  • Working tree not populated in fetch_and_checkout_commit for partial clones
  • Local path validation now rejects . and .. as handles
  • Handles with empty path segments (e.g. user//skill) now rejected
  • _sanitize_path_component no longer accepts . which collapsed cache paths
  • Ralph deps no longer incorrectly block skill name migration
  • Local name-conflict detection no longer skips occupied destination paths
  • Errored local deps no longer written to lockfile
  • Duplicate local skills with the same name but different paths now rejected
  • sync_dependencies_to_tools no longer erroneously installs ralphs as skills
  • Overly broad path traversal check no longer rejects valid filenames containing ..
  • Overly aggressive skill discovery exclusion for excluded directory names
  • Invalid canonical_instructions example in saved config
  • Rich console no longer wraps detail messages in CLI output
  • Lockfile path mismatch for global local skill installs
  • _extract_description now correctly reads frontmatter description field
  • Overly broad exception catch narrowed from Exception to AgrError in sync

Docs

  • Split "Creating Ralphs" into its own page
  • Updated architecture page to reflect ralph support and new module structure
  • Updated Configuration and Handles pages to use resource-generic language
  • Added SEO frontmatter to contributing pages
  • Switched to sidebar navigation layout with light mode default

Full changelog: https://github.com/computerlovetech/agr/blob/main/CHANGELOG.md

v0.8.1

31 Mar 12:56

Choose a tag to compare

What's New in v0.8.1

Added

  • default_owner config option for 1-part handle resolution — set once, use short handles everywhere

Changed

  • Rebranded repository URLs from jungekasper/agr to computerlovetech/agr
  • Removed bundled skills from repository (install via agr add instead)

Fixed

  • Code formatting issues in 5 core modules

Docs

  • Document default_owner and 1-part handle format in README and reference
  • Add terminal demo, workspace guide, and audit docs
  • Move tool integration docs to contributing section
  • Standardize installation instructions on uv
  • Consolidate agent_docs/ into docs/docs/contributing/

Full changelog: https://github.com/computerlovetech/agr/blob/main/CHANGELOG.md

v0.8.0

30 Mar 21:16

Choose a tag to compare

What's New in v0.8.0

Added

  • Lockfile support for reproducible skill installs (agr.lock written during add, remove, and sync with pinned commit SHAs)
  • Documentation site with MkDocs: tutorial, CLI reference, core concepts, creating skills guide, Python SDK docs, troubleshooting, teams guide, skill directory, agrx page, and llms.txt for AI tool discovery
  • Structured data (FAQPage, HowTo, TechArticle, BreadcrumbList) across documentation pages for search engine rich results

Changed

  • Cursor skills now use flat naming (skill-name/ directly under .cursor/skills/) instead of nested directories (user/repo/skill/)
  • Auto-migration flattens existing nested Cursor skills during agr sync, agr add, and agr remove
  • Skill scaffold now includes a required description field in SKILL.md
  • README rewritten with clearer value proposition, real skill examples, and invocation instructions

Fixed

  • OpenCode compatibility: use correct CLI flags for run mode and TUI interactive mode
  • Antigravity detection: correct .agent signal to .agents; update skills paths from .agent/ to .gemini/
  • SDK list_skills() now raises InvalidHandleError instead of ValueError
  • SDK network failures raise AgrError instead of ConnectionError
  • agr config show correctly escapes Rich markup in source type brackets

Removed

  • agr onboard command and deprecated agr tools subcommands
  • Orphaned test_gh_issue_phase.py test file referencing removed development skills

Full changelog: https://github.com/computerlovetech/agr/blob/main/CHANGELOG.md

v0.7.10

10 Mar 21:57

Choose a tag to compare

What's New in v0.7.10

Changed

  • Codex skills directory from .codex/skills/ to .agents/skills/ (following Codex upstream change)
  • OpenCode skills directory from .opencode/skill/ to .opencode/skills/ (following OpenCode upstream change)

Added

  • Auto-migration from .codex/skills/ to .agents/skills/ during agr sync
  • Auto-migration from .opencode/skill/ to .opencode/skills/ during agr sync, agr add, and agr remove
  • Backwards-compatible detection of both .agents/ and .codex/ for Codex

Full changelog: https://github.com/kasperjunge/agent-resources/blob/main/CHANGELOG.md

v0.7.9

05 Mar 14:33

Choose a tag to compare

What's New in v0.7.9

Added

  • Deterministic content hashes for installed skills (sha256: prefixed)
  • compute_content_hash() in agr/metadata.py for SHA-256 hashing of skill directory contents
  • content_hash property and recompute_content_hash() method on SDK Skill class
  • Content hash written to .agr.json at install time (both local and remote)
  • Content hash preserved during agr sync metadata migrations

Full changelog: https://github.com/kasperjunge/agent-resources/blob/main/CHANGELOG.md

v0.7.8

02 Mar 18:24

Choose a tag to compare

What's New in v0.7.8

Added

  • agr onboard interactive guided setup command: walks through tool selection, skill discovery, migration, and configuration
  • agr --quiet / -q global flag to suppress non-error output across all commands
  • agr/detect.py module for signal-based tool detection (checks for .claude/, CLAUDE.md, .cursor/, .cursorrules, etc.)
  • agr/console.py shared console factory that respects the quiet flag
  • Auto-detect tools when agr add creates a new agr.toml (uses the same signal-based detection)
  • Tests for onboard, quiet mode, and tool detection

Changed

  • agr init simplified: removed --interactive, --migrate, and --prefer flags (interactive setup moved to agr onboard)
  • agr init no longer discovers or adds skills to config (that responsibility moved to agr onboard)
  • agr init uses signal-based tool detection instead of checking for tool skills directories
  • Replaced module-level Console() instances with lazy get_console() calls to support the quiet flag
  • agr init hints at agr onboard instead of agr sync as the next step

Removed

  • --interactive / -i flag from agr init
  • --migrate and --prefer flags from agr init
  • Skill discovery, migration, and deduplication logic from agr/commands/init.py (moved to onboard)

Docs

  • Updated README, docs/index.md, and docs/reference.md to reflect agr init simplification and new agr onboard command
  • Removed references to deleted --interactive, --migrate, --prefer flags
  • Added agr onboard to command tables and reference
  • Added "Global Options" section to reference documenting --quiet/-q and --version/-v

Full changelog: https://github.com/kasperjunge/agent-resources/blob/main/CHANGELOG.md

v0.7.7

02 Mar 16:08

Choose a tag to compare

What's New in v0.7.7

Fixed

  • agr config set/add/remove tools --global no longer calls find_repo_root() or syncs/deletes repo-local skills
  • _sync_dependencies_to_tools return value is now checked; non-zero exits with error
  • agr config edit handles $EDITOR with flags (e.g. "code --wait") via shlex.split
  • agr config edit propagates editor exit code
  • agr config path --global errors when ~/.agr/agr.toml doesn't exist instead of printing a nonexistent path
  • Hardcoded ~/.agr/agr.toml in _load_config error message replaced with actual path
  • agr config add/remove sources rejects extra values (only one source name at a time)

Changed

  • Extracted VALID_CANONICAL_INSTRUCTIONS constant in agr/config.py, shared with config_cmd.py
  • Extracted GlobalScope type alias in agr/main.py replacing 8 duplicate Annotated definitions
  • Added else: raise AssertionError guards to key dispatch chains in run_config_get/set/unset
  • agr config add tools skips config.save() when no tools were actually added

Added

  • 14 new CLI tests for config edit, default_source, sync_instructions, canonical_instructions, type flags, unconfigured tools, extra values, and deprecation warnings

Full changelog: https://github.com/kasperjunge/agent-resources/blob/main/CHANGELOG.md