Skip to main content

smartem-workspace

PyPI version Python Versions License CI

CLI tool to automate SmartEM multi-repo workspace setup.

Installation

# Run directly with uvx (recommended)
uvx smartem-workspace init

# Or install globally
uv tool install smartem-workspace

Usage

Global options

--no-color          Disable colored output
--plain             Plain mode: no color, no interactive prompts

Initialize a new workspace

# Interactive setup in current directory
smartem-workspace init

# Specify target directory
smartem-workspace init --path ~/dev/smartem

# Use a preset (skip repo selection)
smartem-workspace init --preset smartem-core

# Non-interactive with preset
smartem-workspace init --preset full --no-interactive

Available presets

Preset Description
smartem-core Core SmartEM repos (decisions, frontend, devtools)
full All 30+ repos including ARIA reference
aria-reference ARIA ecosystem repos for reference
minimal Just smartem-devtools (workspace setup only)

Verify workspace setup

# Check all configuration
smartem-workspace check

# Check specific scope
smartem-workspace check --scope claude
smartem-workspace check --scope repos
smartem-workspace check --scope serena

# Auto-repair fixable issues (broken symlinks, missing dirs)
smartem-workspace check --fix

Sync repositories

# Pull latest from all cloned repos
smartem-workspace sync

# Preview what would be pulled
smartem-workspace sync --dry-run

Sync skips repos with uncommitted changes or not on main/master branch.

Other commands

# Show workspace status (alias for check)
smartem-workspace status

# Set up Claude Code integration (after init without --with-claude)
smartem-workspace claude setup

# Add a single repo (not yet implemented)
smartem-workspace add DiamondLightSource/smartem-frontend

Init options

--path PATH         Target directory (default: current directory)
--preset NAME       Use preset: smartem-core, full, aria-reference, minimal
--no-interactive    Skip prompts, use preset only
--git-ssh           Force SSH URLs for all repos
--git-https         Force HTTPS URLs (skip auto-detection)
--with-claude       Enable Claude Code integration setup
--skip-serena       Skip Serena MCP setup
--skip-dev-requirements  Skip developer requirements check

Git URL auto-detection: By default, the CLI automatically detects if you have SSH authentication configured for GitHub. If SSH works, repos are cloned via SSH (enabling push); otherwise HTTPS is used (read-only). Use --git-ssh or --git-https to override.

Check options

--scope SCOPE       Check scope: dev-requirements, claude, repos, serena, or all (default: all)
--fix               Attempt to fix issues (recreate symlinks, dirs)
--offline           Use bundled config instead of fetching from GitHub

Sync options

--dry-run, -n       Show what would be done without making changes

What it sets up

  1. Repository clones - Organized by organization (DiamondLightSource, FragmentScreen, GitlabAriaPHP)
  2. Claude Code configuration (with --with-claude) - Skills, settings, permissions
  3. Serena MCP server - Semantic code navigation
  4. Workspace structure - tmp/, testdata/ directories

Documentation

Development

cd packages/smartem-workspace

# Install dev dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Run linter
uv run ruff check .

# Build package
uv build

See Developer Guide for detailed development instructions.

Releasing

Releases are published to PyPI via GitHub Actions using Trusted Publishers.

# 1. Update version in pyproject.toml
# 2. Commit the change
git commit -am "chore: release smartem-workspace vX.Y.Z"

# 3. Create and push a version tag
git tag smartem-workspace-vX.Y.Z
git push origin main --tags

The CI workflow runs tests, builds the package, and publishes to PyPI automatically on tag push.

Links

License

Apache-2.0

Metadata

Release files for smartem-workspace 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smartem-workspace 0.6.1
File Size Uploaded
smartem_workspace-0.6.1.tar.gz 59.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smartem-workspace 0.6.1
File Interpreter ABI Platform
smartem_workspace-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 92.8 kB

Release files / smartem_workspace-0.6.1.tar.gz

Download URL smartem_workspace-0.6.1.tar.gz
Size 59.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a62f43f7048dc4b7557e840dc4eaeca4f8735a510cf6786843f60d68f5ebaa18
BLAKE2b-256 checksum
How to use checksums
d9ccc905d43ccf9dfa2d4f946d869bd501d522fae0c2ce8d69fc86c3226667a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 14, 2026.

Transparency log

Release files / smartem_workspace-0.6.1-py3-none-any.whl

Download URL smartem_workspace-0.6.1-py3-none-any.whl
Size 33.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc4e698cf5d59017f3ae8a12d23ebb590134f504bb395adc30372ae85ba73827
BLAKE2b-256 checksum
How to use checksums
a47b08967712e4b01a5db05a3eb4d1f5252f27742f3d67c18f93a983b9927cd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page