Skip to main content

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 sync reports 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

Silicon Extend is licensed under the Apache License 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

silicon_extend-0.1.1.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

silicon_extend-0.1.1-py3-none-any.whl (44.0 kB view details)

Uploaded Python 3

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

Hashes for silicon_extend-0.1.1.tar.gz
Algorithm Hash digest
SHA256 521c1e860b6d5bcf45bb09708264156ab7355bee9a6b31500795417c5c25db8d
MD5 9075a55739294a73074b564c1d694c9a
BLAKE2b-256 e59f9881940436fd266a381ccc676655a6b2eb5e9a186332613bfba1892d03af

See more details on using hashes here.

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

Hashes for silicon_extend-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3c8e4b997c1097aa87febbee598157af4540ef722917c209547f65dd453c4ff
MD5 07d2af6cc7fa0977ac038532ba29de09
BLAKE2b-256 5ddd656b95a82d2a77f0cd0818dfae75eeb70718380c982df58c772e0e760c3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page