Silicon Extend
Silicon Extend is the tool layer for Silicons. It gives every Silicon the same small interface for discovering tools, understanding their inputs, requesting setup, and executing work.
It runs in two modes:
| Mode | Source of truth | Best for |
|---|---|---|
| Connected | Glass for the authenticated Silicon's team | Shared tools, setup, and connections across every Silicon on a team |
| Standalone | A local encrypted Extend store | Local development, isolated installations, and private internal APIs |
The command surface stays the same in both modes. A Silicon can move from a standalone workspace to a Glass-connected installation without learning a second tool system.
Install
python -m pip install silicon-extend
The package installs both the silicon-extend command and the
silicon_extend Python library.
The four-command path
# See the active mode and readiness summary.
silicon-extend status
# List tools that can be used now.
silicon-extend ready
# Read the live schema and usage guidance before calling a tool.
silicon-extend show inventory.lookup
# Execute with one JSON object.
silicon-extend run inventory.lookup --input examples/lookup-input.json
If a tool is enabled but not connected:
silicon-extend setup inventory.lookup \
--note "Needed to check stock before confirming the order"
In connected mode this creates an actionable setup request in Interface. The
Carbon completes setup there; credentials remain in Glass and the tool becomes
available to the team's Silicons. In standalone mode the response points to
the local connection add command.
Every command accepts --json, including commands such as:
silicon-extend --json list
silicon-extend --json integration help inventory
Connected mode: one team, one live directory
A normal Silicon installation already has a .glass.json credential file.
Extend discovers it, authenticates the Silicon, and lets Glass derive the
team. There is no team flag and no local copy of team connections.
That means:
- tools enabled or created for a team are visible to that team's Silicons;
- setup completed once can be reused according to the connection's team scope;
- changes made from the Extend area in Glass are visible on the next command;
silicon-extend syncreports the current authoritative revision rather than merging a second local registry.
See Connected mode for the full flow.
Standalone mode: a complete local Extend
Without a Glass connection, Extend starts in standalone mode. It can define integrations, import OpenAPI descriptions, create tools, store encrypted connections, and execute tools directly.
export SILICON_EXTEND_MODE=standalone
export SILICON_EXTEND_HOME="$PWD/.extend"
silicon-extend integration create --file examples/inventory-integration.json
silicon-extend tool create inventory --file examples/inventory-tool.json
silicon-extend integration help inventory
Add a connection without putting its value in shell history:
silicon-extend connection add inventory --input -
The command reads one JSON object from standard input. See Standalone mode for storage, backup, and setup details.
Internal tools
An internal integration is an HTTP API plus safe connection rules, help, and one or more typed operations. Each operation becomes a tool. Tool definitions contain:
- a stable key such as
inventory.lookup; - an HTTP method and path;
- JSON Schema for inputs and outputs;
- routing information for path, query, header, and body arguments;
- help that tells a Silicon when and how to use it.
Create one from the included manifests:
silicon-extend integration create --file examples/inventory-integration.json
silicon-extend tool create inventory --file examples/inventory-tool.json
Or import an OpenAPI 3 description:
silicon-extend integration import-openapi examples/inventory-openapi.json \
--key inventory \
--name "Inventory"
See Building integrations for the manifest format, connection types, OpenAPI behavior, and design guidance.
Python
from silicon_extend import Extend
extend = Extend.discover()
for tool in extend.list_tools(view="ready")["tools"]:
print(tool["key"], tool["description"])
details = extend.get_tool("inventory.lookup")
result = extend.execute("inventory.lookup", {"sku": "SKU-1042"})
Extend.discover() uses the same mode discovery and source of truth as the
CLI. See the Python SDK guide for setup requests,
authoring, errors, and structured results.
Documentation
- Getting started
- Connected mode
- Standalone mode
- Building integrations and tools
- CLI reference
- Python SDK
- Security model
Silicon Extend is licensed under the Apache License 2.0.
Metadata
Release files for silicon-extend 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| silicon_extend-0.1.4.tar.gz | 38.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| silicon_extend-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.8 kB
Release files / silicon_extend-0.1.4.tar.gz
| Download URL | silicon_extend-0.1.4.tar.gz |
|---|---|
| Size | 38.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16e8aa9acea14bbf5b1e1c69f78954692acd374dfc14363452a518f89f0f03e1
|
|
BLAKE2b-256 checksum How to use checksums |
3f5865d3a9714a7756492dc5a7b69d87a3ec3bafc1a8c5b99e3afb9fcde961ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0
|
Release files / silicon_extend-0.1.4-py3-none-any.whl
| Download URL | silicon_extend-0.1.4-py3-none-any.whl |
|---|---|
| Size | 44.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
303e17e32d8105e20f30298b418ff197924d7845dd5705a1360bed2c49841b22
|
|
BLAKE2b-256 checksum How to use checksums |
fbc80169b01880cda5dbc34e7393ed3a3bd9da9af9c2d7d22a2cb735c8b2c44b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0
|