Skip to content

eject

Description

Eject a component and its dependencies to a new fork.

This command allows you to fork an existing component (skill, contract, connection, or protocol) to a new author and name while preserving its functionality. It handles dependency management and configuration updates automatically.

Component Types:

- skill: Agent skills (e.g., price_estimation, nft_trading)
- contract: Smart contracts (e.g., token_bridge, amm_contract)
- connection: Network connections (e.g., http_client, websocket)
- protocol: Communication protocols (e.g., fipa, http)

Usage:

# Eject a skill:
adev eject skill eightballer/metrics new_author/better_metrics

# Eject a contract without its dependencies:
adev eject contract valory/gnosis_safe new_author/safe --skip-dependencies

# Eject a connection:
adev eject connection valory/http_client new_author/custom_http

# Eject a protocol:
adev eject protocol open_aea/signing new_author/custom_signing

Args:

component_type: Type of the component (skill, contract, connection, protocol)

public_id: Public ID of the component to eject (author/name)

fork_id: New public ID for the ejected component (author/name)

skip_dependencies: Skip ejecting dependencies (they must already be ejected)