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.2.tar.gz (412.5 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.2-py3-none-any.whl (56.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: spex_cli-0.1.2.tar.gz
  • Upload date:
  • Size: 412.5 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.2.tar.gz
Algorithm Hash digest
SHA256 57e82b71bd8873100db826cd16d89ea0eedbb44798e8f97da02d2043814465d7
MD5 bf267c3d0e6be30800001cd097e16670
BLAKE2b-256 0aa51046b7803dcb5d7563880bed1c6f146397a427d78b4ddf7ae1fbcbb4eef2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spex_cli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 56.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dba36c8b12a0548006ace2fb655e9536180dd8a681077fba3aa3541a3b3e7859
MD5 ed9a6af2485da7406717ef50b52734f4
BLAKE2b-256 ac6c15c596cfb914ad685fe4dc2f8d1f7869a2af468891d8345b6d754348cf71

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