Documentation: https://shellsmith.pages.dev
Shellsmith is a Python SDK for managing Asset Administration Shells (AAS) via the Eclipse BaSyx REST API.
pip install shellsmith
For CLI and MCP server support, install with optional dependencies:
pip install shellsmith[cli,mcp]
Requires: Python 3.10+
You can also use shellsmith
as a Python client library to interact with the BaSyx Environment REST API.
import shellsmith
# Fetch all AAS Shells
shells = shellsmith.get_shells()
# Fetch a specific Submodel
submodel = shellsmith.get_submodel("https://example.com/submodels/my-submodel")
# Read and update a Submodel Element's value
value = shellsmith.get_submodel_element_value(submodel["id"], "temperature")
shellsmith.patch_submodel_element_value(submodel["id"], "temperature", "42.0")
ℹ️
shell_id
andsubmodel_id
are automatically base64-encoded unless you passencode=False
.
➡️ Full Python API reference: shellsmith.pages.dev/api
Shellsmith provides a powerful command-line interface:
aas --help
Command | Description |
---|---|
info |
Display the current Shell tree and identify issues. |
upload |
Upload a single AAS file or all AAS files from a folder. |
nuke |
☢️ Delete all Shells and Submodels (irrevocable). |
encode |
Encode a value (e.g. Shell ID) to Base64. |
decode |
Decode a Base64-encoded value. |
get |
Get Shells, Submodels, and Submodel Elements. |
delete |
Delete Shells, Submodels, or Submodel Elements. |
update |
Update Shells, Submodels, or Submodel Elements. |
create |
Create new Shells, Submodels, or Submodel Elements. |
ℹ️ Run
aas <command> --help
to view subcommands and options.
➡️ Full CLI reference: shellsmith.pages.dev/cli
Shellsmith provides a Model Context Protocol (MCP) server that enables AI assistants to interact with Asset Administration Shells. The server exposes 25+ tools for comprehensive AAS management through a standardized interface.
Configure with Claude Desktop or other MCP clients to get AI-powered AAS operations.
➡️ Full MCP reference: shellsmith.pages.dev/mcp
The default AAS environment host is:
http://localhost:8081
You can override it in several ways:
-
Set the environment variable:
SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
-
Create a
.env
file in your project with:SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
-
Use the
--host
option with any CLI command:aas get shells --host https://your-host:1234
-
Pass the
host
parameter in anyshellsmith
Python function:shellsmith.get_shells(host="https://your-host:1234")
ℹ️ The
--host
CLI flag andhost=
Python argument take precedence over environment variables and.env
.
We welcome contributions!
See the Contributing Guide for setup, testing, and coding standards.