Documentation: https://shellsmith.pages.dev
Shellsmith is a Python SDK for managing Asset Administration Shells (AAS) via the Eclipse BaSyx REST API.
Installation
pip install shellsmith
For CLI and MCP server support, install with optional dependencies:
pip install shellsmith[cli,mcp]
Requires: Python 3.10+
Python API Usage
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_idandsubmodel_idare automatically base64-encoded unless you passencode=False.
➡️ Full Python API reference: shellsmith.pages.dev/api
CLI Usage
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> --helpto view subcommands and options.
➡️ Full CLI reference: shellsmith.pages.dev/cli
MCP Integration
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
Configuration
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
.envfile in your project with:SHELLSMITH_BASYX_ENV_HOST=https://your-host:1234
-
Use the
--hostoption with any CLI command:aas get shells --host https://your-host:1234
-
Pass the
hostparameter in anyshellsmithPython function:shellsmith.get_shells(host="https://your-host:1234")
ℹ️ The
--hostCLI flag andhost=Python argument take precedence over environment variables and.env.
Contributing
We welcome contributions!
See the Contributing Guide for setup, testing, and coding standards.
Resources
Metadata
Release files for shellsmith 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shellsmith-0.5.0.tar.gz | 13.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shellsmith-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.0 kB
Release files / shellsmith-0.5.0.tar.gz
| Download URL | shellsmith-0.5.0.tar.gz |
|---|---|
| Size | 13.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
710dc5d8c4163b6fa53ad48a1ca46cd9ac1eabbe2d51b31897c2bae0e5b8978c
|
|
BLAKE2b-256 checksum How to use checksums |
0ccac6ae1d91b3bea51b396c26ad96a8f7eb6a95b5966fd27b4f43957f3fae50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.0
|
Release files / shellsmith-0.5.0-py3-none-any.whl
| Download URL | shellsmith-0.5.0-py3-none-any.whl |
|---|---|
| Size | 17.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c6f052d6e77378c8ad1778cb077ed1b14568a10978beefa08796732f269387ab
|
|
BLAKE2b-256 checksum How to use checksums |
a1f06d0a1333650e6281f4603b965238bfcd3cb8f34c895bbe5f797b73d7461c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.0
|