The shared and standalone tool integration layer for Silicon.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file silicon_extend-0.1.1.tar.gz.
File metadata
- Download URL: silicon_extend-0.1.1.tar.gz
- Upload date:
- Size: 37.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
521c1e860b6d5bcf45bb09708264156ab7355bee9a6b31500795417c5c25db8d
|
|
| MD5 |
9075a55739294a73074b564c1d694c9a
|
|
| BLAKE2b-256 |
e59f9881940436fd266a381ccc676655a6b2eb5e9a186332613bfba1892d03af
|
File details
Details for the file silicon_extend-0.1.1-py3-none-any.whl.
File metadata
- Download URL: silicon_extend-0.1.1-py3-none-any.whl
- Upload date:
- Size: 44.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3c8e4b997c1097aa87febbee598157af4540ef722917c209547f65dd453c4ff
|
|
| MD5 |
07d2af6cc7fa0977ac038532ba29de09
|
|
| BLAKE2b-256 |
5ddd656b95a82d2a77f0cd0818dfae75eeb70718380c982df58c772e0e760c3b
|