A command line tool for creating workspaces for agents on top of piku
Project description
Silica: Multi-Workspace Management for Agents
Silica is a command-line tool for creating and managing agent workspaces on top of piku.
Installation
Quick Install
For systems with Python 3.11+:
# Using uv (recommended)
uv pip install pysilica
playwright install chromium # Install browser for web development tools
# Using pip
pip install pysilica
playwright install chromium # Install browser for web development tools
Raspberry Pi Deployment
Silica automatically handles Python 3.11 installation on remote Raspberry Pi systems during workspace creation. The deployment process:
- Detects Raspberry Pi hardware
- Installs Python 3.11 via pyenv if needed
- Sets up virtual environment
- Installs Silica and dependencies
- Verifies the installation
For detailed deployment information, see the Raspberry Pi Deployment Guide.
Note: The package name is pysilica but the CLI command and import name is silica.
Requirements
- Python: 3.11 or higher (required)
- Package Manager:
uv(recommended) orpip - Playwright Browser: Required for web development tools (installed via
playwright install chromium) - ripgrep: Optional but recommended for enhanced file search performance
For complete installation instructions, see docs/INSTALLATION.md.
Optional: Install ripgrep for enhanced search performance
# macOS
brew install ripgrep
# Ubuntu/Debian
sudo apt install ripgrep
# Windows (chocolatey)
choco install ripgrep
Ripgrep provides faster file searching and is automatically used by the memory system when available.
What's New: Multi-Workspace Support
Silica now supports managing multiple concurrent workspaces from the same repository. This allows you to:
- Create and maintain multiple agent workspaces with different configurations
- Switch between workspaces easily without having to recreate them
- Track configurations for all workspaces in a single repository
Key Features
- Multiple Agent Support: Support for different AI coding agents with YAML-based configuration
- Workspace Management: Create, list, and manage multiple agent workspaces
- Default Workspace: Set a preferred workspace as default for easier command execution
- Immutable Workspaces: Each workspace is tied to a specific agent type - create new workspaces for different agents
🤖 Integrated Agent
Silica is tightly integrated with heare-developer (hdev), an autonomous coding agent that includes:
- Autonomous engineering with the
--dwr(Do What's Required) flag - Configurable personas for different coding styles
- Integration with Claude for AI assistance
- Web search capabilities via Brave Search API
- GitHub integration for repository management
The agent is automatically installed when creating workspaces and configured for optimal performance.
Usage
Creating Workspaces
# Create a default workspace named 'agent' with heare-developer
silica create
# Create a workspace with a custom name
silica create -w assistant
# Create workspace for a specific project
silica create -w my-project
Managing Workspaces
# List all configured workspaces
silica workspace list
# View the current default workspace
silica workspace get-default
# Set a different workspace as default
silica workspace set-default assistant
Working with Specific Workspaces
Most commands accept a -w/--workspace flag to specify which workspace to target:
# Sync a specific workspace
silica sync -w assistant
# Sync with cache clearing to ensure latest versions
silica sync -w assistant --clear-cache
# Check status of a specific workspace
silica status -w assistant
# Connect to a specific workspace's agent
silica agent -w assistant
# Send a message to the workspace's agent
silica tell "Please analyze this code" -w assistant
Configuration Management
# View current configuration
silica config list
# Set configuration values
silica config set key=value
# Run interactive setup wizard
silica config setup
Destroying Workspaces
# Destroy a specific workspace
silica destroy -w assistant
Configuration
Silica stores workspace configurations in .silica/config.yaml using a nested structure:
default_workspace: agent
workspaces:
agent:
piku_connection: piku
app_name: agent-repo-name
branch: main
agent_type: hdev
agent_config:
flags: []
args: {}
assistant:
piku_connection: piku
app_name: assistant-repo-name
branch: feature-branch
agent_type: hdev
agent_config:
flags: ["--persona", "code_reviewer"]
args: {}
Development
Running Tests
# Run all tests
pytest
# Run only fast tests (excludes slow integration tests)
pytest -m "not slow"
# Run with verbose output and show slowest tests
pytest -v --durations=10
The test suite includes markers for different test types:
slow: Integration tests that take longer to run (tmux operations, subprocess timeouts)integration: Tests requiring external resourcessafe: Tests with no side effects
For faster development iteration, use pytest -m "not slow" to run only the fast tests (~43s vs ~82s for the full suite).
Compatibility
This update maintains backward compatibility with existing silica workspaces. When you run commands with the updated version:
- Existing workspaces are automatically migrated to the new format
- The behavior of commands without specifying a workspace remains the same
- Old script implementations that expect workspace-specific configuration will continue to work
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 pysilica-0.6.8.tar.gz.
File metadata
- Download URL: pysilica-0.6.8.tar.gz
- Upload date:
- Size: 9.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9a0e7670d08c1d564a26bb25d9e3067b925052a0a40af8dddf4fc1451f68b10
|
|
| MD5 |
9d75f3d69f8e82d9cea4becf6acc64dd
|
|
| BLAKE2b-256 |
cc639dfa9b840822a813068b812b6ea3c1ec354ee252b1a9fb2082aa0ce91cc9
|
Provenance
The following attestation bundles were made for pysilica-0.6.8.tar.gz:
Publisher:
publish-to-pypi.yml on clusterfudge/silica
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysilica-0.6.8.tar.gz -
Subject digest:
c9a0e7670d08c1d564a26bb25d9e3067b925052a0a40af8dddf4fc1451f68b10 - Sigstore transparency entry: 660050633
- Sigstore integration time:
-
Permalink:
clusterfudge/silica@7dc79c013c26595e5089902d227c26964ccfc08d -
Branch / Tag:
refs/tags/v0.6.8 - Owner: https://github.com/clusterfudge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@7dc79c013c26595e5089902d227c26964ccfc08d -
Trigger Event:
push
-
Statement type:
File details
Details for the file pysilica-0.6.8-py3-none-any.whl.
File metadata
- Download URL: pysilica-0.6.8-py3-none-any.whl
- Upload date:
- Size: 310.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9e770dd440b6b92341ef3c1a5c46574db308dd0069d36355612eb673635d067
|
|
| MD5 |
eb848fd37e91ef2514ddea6358f4563a
|
|
| BLAKE2b-256 |
a1dcff3c1587c237d3de80f3e6c33659e9cd5397233721f9417924f21376ae5d
|
Provenance
The following attestation bundles were made for pysilica-0.6.8-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on clusterfudge/silica
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pysilica-0.6.8-py3-none-any.whl -
Subject digest:
b9e770dd440b6b92341ef3c1a5c46574db308dd0069d36355612eb673635d067 - Sigstore transparency entry: 660050646
- Sigstore integration time:
-
Permalink:
clusterfudge/silica@7dc79c013c26595e5089902d227c26964ccfc08d -
Branch / Tag:
refs/tags/v0.6.8 - Owner: https://github.com/clusterfudge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@7dc79c013c26595e5089902d227c26964ccfc08d -
Trigger Event:
push
-
Statement type: