You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Shellsmith is a Python toolkit and CLI for managing Asset Administration Shells (AAS), Submodels, and related resources.
13
-
It is designed to interact with [Eclipse BaSyx](https://www.eclipse.org/basyx/), a middleware platform for AAS that follows the [Industry 4.0 standard](https://industrialdigitaltwin.org/en/content-hub/aasspecifications).
12
+
**Shellsmith** is a Python SDK and CLI for managing [Asset Administration Shells (AAS)](https://industrialdigitaltwin.org/en/content-hub/aasspecifications), Submodels, and Submodel Elements via the [Eclipse BaSyx](https://www.eclipse.org/basyx/) REST API.
13
+
14
+
It provides full client-side access to AAS resources with a clean Python interface and a powerful `typer`-based CLI — ideal for scripting, automation, and digital twin integration workflows.
14
15
15
16
### Features
16
17
17
-
- Python API for CRUD operations on shells, submodels, and submodel elements
18
-
- CLI interface for quick scripting
19
-
-`.env`-based configuration
18
+
- 🔧 **Python SDK** for full CRUD access to Shells, Submodels, and Submodel Elements
19
+
- ⚡ **CLI tool** powered by [Typer](https://typer.tiangolo.com/) for fast scripting and automation
20
+
- ⚙️ Simple `.env`-based configuration for flexible environment switching
21
+
- 🔁 Seamless integration with the [Eclipse BaSyx](https://www.eclipse.org/basyx/) AAS REST API
20
22
21
23
## 🚀 Installation
22
24
@@ -34,56 +36,114 @@ The default AAS environment host is:
34
36
http://localhost:8081
35
37
```
36
38
37
-
You can override it by setting the `SHELLSMITH_BASYX_ENV_HOST` environment variable, or by creating a `.env` file in your project root with:
39
+
You can override it by setting the `SHELLSMITH_BASYX_ENV_HOST` environment variable, or by creating a `.env` file in the current working directory or your project root.
38
40
39
41
```bash
40
42
SHELLSMITH_BASYX_ENV_HOST=http://your-host:1234
41
43
```
42
44
43
-
## 🛠️ Usage
45
+
## 🧠 CLI Usage
44
46
45
-
```bash
46
-
aas --help
47
-
```
48
-
49
-
Common commands:
47
+
Shellsmith provides a powerful command-line interface:
50
48
51
49
```bash
52
-
aas info # Show all shells and submodels
53
-
aas upload <file|folder># Upload AAS file or folder
54
-
55
-
aas shell delete <id># Delete a shell
56
-
aas submodel delete <id># Delete a submodel
57
-
58
-
aas sme get <id><path># Get Submodel element value
59
-
aas sme patch <id><path><new_value># Set Submodel element value
60
-
```
61
-
62
-
Use `--cascade` or `--unlink` to control deletion behavior:
63
-
64
-
```bash
65
-
aas shell delete <id> --cascade # Also delete referenced submodels
66
-
aas submodel delete <id> --unlink # Remove references from shells
50
+
aas --help
67
51
```
68
52
69
-
## 📡 API Usage
70
-
71
-
You can also use `shellsmith` as a Python package:
> ℹ️ `shell_id` and `submodel_id` are automatically base64-encoded unless you set `encode=False`. This is required by the BaSyx API for identifier-based URLs.
@@ -94,7 +154,7 @@ The tables below show the mapping between BaSyx AAS REST API endpoints and the i
94
154
95
155
### Shells
96
156
97
-
| Method | BaSyx Endpoint |Shellsmith Function|
157
+
| Method | BaSyx Endpoint |`shellsmith` Function |
0 commit comments