Skip to main content

CLI tool for managing requirements and decisions

Project description

speX Logo

🌋 Spex CLI

Autonomous engineering experience enabled.
A set of skills and cli tools to enable autonomous AI engineering.

⚠️ Note: Spex is currently in Beta and considered experimental.

OverviewAutonomous AI EngineeringQuick StartWorkflow


🌟 Overview

Spex is a CLI tool designed to capture the "why" behind your code. It manages requirements, technical decisions, and project-wide policies in a versioned, git-friendly format (.jsonl).

By integrating directly into your development workflow via agent skills and git hooks, Spex ensures that every major decision is grounded in requirements and traced back to the commits that implemented it.


🤖 Autonomous AI Engineering

True autonomy in AI engineering cannot be achieved without trust. Spex is built on three pillars to establish and maintain this trust:

  1. Confidence through Delegation: Trust means we are confident that the instructions given to the agent are clear. When ambiguity arises over important decisions—past or present—the agent proactively delegates them back to the engineer.
  2. Reliable Grounding: Trust means knowing the agent intimately understands your system and product. Spex allows the agent to navigate and ground itself in the correct architecture, constraints and previous decisions.
  3. Continuous Evolution: To build trust over time, the agent must get better with every task. By reflecting on past experiences and mistakes, Spex enables the agent to learn and improve continuously.

🚀 Quick Start

1. Installation

Install Spex via pip:

pip install spex-cli

2. Initialize Spex

Run the following command in your git repository to set up the necessary directory structure and git hooks:

spex enable

💡 Recommendation: Choose to use Spex as your default workflow during initialization. This ensures your agent automatically leverages Spex memory and state machines for all development tasks.


🔄 Workflow

Spex orchestrates development through a structured lifecycle, ensuring that knowledge is captured and code is aligned with requirements.

1. Onboarding (spex-onboard)

The first step in any project is to map the codebase structure. This identifies all applications and libraries, creating a foundation for localized decisions.

  • Description: Scans for package.json, pyproject.toml, etc., and prompts for component owners.
  • Example:
    spex-onboard analyze the codebase
    

2. Knowledge Capture (spex learn)

Build your project memory by ingesting existing documentation or capturing real-time decisions.

  • Learning from Docs: Reads architecture files and extracts structured requirements/decisions.
    spex learn from docs/architecture.md
    
  • Learning from Conversation: Captures decisions made during your chat session.
    spex memorize this conversation
    

3. Development Flow (spex)

Spex intelligently routes your requests based on their complexity.

💡 Lightweight Flow (Small Tasks)

For bug fixes, UI tweaks, or minor refactors that don't change the architecture.

  • Description: Researches memory, executes the change, and automatically "memorizes" the result.
  • Example: "Fix the bug where the user's name doesn't update in the header."

🗺️ Plan Mode (Large Features)

For new functionality or complex changes requiring deliberate planning and human review.

  • Description: Follows a full state machine: RESEARCHPLANREVIEWEXECUTEAUDIT.
  • Example: "spex, let's build a new feature: user-to-user direct messaging."

4. Continuous Improvement (spex reflect)

After a feature is implemented, use reflection to capture learnings and improve the agent's future performance.

  • Description: Analyzes the completed feature, identifies patterns, and proposes new Policies for the project memory.
  • Usage: Run this only after Plan Mode has successfully finished and you have verified the feature is working as expected (even if extra tweaks were required during execution).
  • Example: "spex reflect on the last feature"

🔧 Troubleshooting

If you encounter issues with git hooks or memory integrity, use the built-in healthcheck command:

spex healthcheck

This command will:

  • Verify that git hooks are correctly installed and executable.
  • Audit the integrity of the .spex/memory/ JSONL files.
  • Ensure the agent skills are correctly configured.

Brought to you with ❤️ by the MagmaAI Team

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

spex_cli-0.1.1.tar.gz (412.4 kB view details)

Uploaded Source

Built Distribution

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

spex_cli-0.1.1-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file spex_cli-0.1.1.tar.gz.

File metadata

  • Download URL: spex_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 412.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for spex_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 74f18dccebcb3456746879378086425ab573f1c7801d7041dc24526493bf61f2
MD5 97642b3ef5270c2efc8b5b16823e7e84
BLAKE2b-256 d632f6b7bbea7518effe3448a7d331159655feb487e6dd7b235f4c4cad065905

See more details on using hashes here.

File details

Details for the file spex_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: spex_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 56.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for spex_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47cc5d0df0188d867a670e1d78ff48b41a93026196ad640d5fa67feb8a2f7a89
MD5 0fe9257ff504413cc70749bc6de649f7
BLAKE2b-256 800bd5f66aa1e9421f7dfd4fcc70612f146409462e4461daf8efc337e0acff32

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