JS

jairorodriguezarias/siesta

Developer tools
79 stars Quality 67 Trend 22MIT

Turn a project idea into a specification, an implementation and a verified result. Siesta interviews you, breaks the work into issues, runs coding agents, and records the decisions and evidence...

Overview

Turn a project idea into a specification, an implementation and a verified result. Siesta interviews you, breaks the work into issues, runs coding agents, and records the decisions and evidence needed to inspect their work. It is designed for small applications that run on your computer. Generated code still needs your review before use. The orchestrator is Python: python3 -m pipeline. It selects a configured role and invokes the Pi coding agent, which connects to Ollama and provides the worker's file and shell tools. The reviewer uses the worker role; the approval proxy and learner use the consultant role. Models are selected explicitly in factory/config/models.json. There is no automatic model selection. Python prints the actual assignments at startup. The local Ollama daemon acts as their proxy. For inference entirely on your own machine, follow the local Ollama guide, including the native tool probe and served-context check. Requirements: Python 3.10+, Git, Bash, Node.

README

Siesta 💤

Turn a project idea into a specification, an implementation and a verified result. Siesta interviews you, breaks the work into issues, runs coding agents, and records the decisions and evidence needed to inspect their work.

It is designed for small applications that run on your computer. Generated code still needs your review before use.

How it works

flowchart LR
    Idea --> Interview --> Spec --> Plan
    Plan --> Worker
    Worker --> Review --> Verify --> Result
    Worker --> Consultant --> Worker
    Worker --> Learning
    Result --> Learning
    Learning --> KB
    KB --> Spec
    KB --> Worker

The orchestrator is Python: python3 -m pipeline. It selects a configured role and invokes the Pi coding agent, which connects to Ollama and provides the worker’s file and shell tools. The reviewer uses the worker role; the approval proxy and learner use the consultant role.

Role Work Default model
Planner Interview, specification, issue plan glm-5.2:cloud
Worker Implementation, code review, verification gemma4:31b-cloud
Consultant Advice, approval proxy, learning glm-5.2:cloud

Models are selected explicitly in factory/config/models.json. There is no automatic model selection. Python prints the actual assignments at startup.

The default models run on Ollama Cloud. The local Ollama daemon acts as their proxy. For inference entirely on your own machine, follow the local Ollama guide, including the native tool probe and served-context check.

Installation

Requirements: Python 3.10+, Git, Bash, Node.js supported by Pi, and a running Ollama installation. Run these commands from the cloned repository root:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install pytest
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
ollama list
pi --help

The Python orchestrator uses the standard library. Keep pytest available in the active environment for generated Python projects and the regression suite. All 15 agent skills are included in the repository.

Git must be configured to create commits with your chosen public attribution. Generated projects have their own Git repositories.

Configure access to the selected models before starting. Cloud routing requires Ollama Cloud access; local routing uses the isolated Ollama profile. Register each model in Pi with its actual served context window.

Usage

Start an interview:

./factory/bin/siesta.sh 'Build a small Python CLI timer with tests'

For an already detailed request, skip the interview:

./factory/bin/siesta.sh --auto 'Build a Python CLI that adds two integers, with pytest tests in every issue'

Resume with the same idea and model profile:

./factory/bin/siesta.sh --auto --resume 'Build a Python CLI that adds two integers, with pytest tests in every issue'

Existing projects resume from their saved state, including when relaunched without --resume. A changed idea that collides with an existing project directory is rejected. Put a stop.md file in the generated project to stop at the next issue boundary; remove it before continuing.

Results appear under factory/projects//, or under the selected profile’s factory/projects/:

Artifact Purpose
spec.md, issues.md Requirements and implementation plan
Source and tests Generated application
kb/graph.json Decisions, completed issues and blockers
verify_verdict.txt Persisted verification result
.pipeline-checkpoint Resume position
*_output.txt, regression_*.log Local execution evidence
.git/ Project commits and recovery archives

Completion requires passing mechanical tests, successful review and verification, and no pending issues. Failed checks leave evidence and a nonzero exit status. A requested stop is a clean halt, so exit status alone does not prove completion.

Reliability and learning

Each issue loads relevant KB summaries and standing principles. The worker implements and tests it; Python checks the suite before recording completion. A blocked issue’s uncommitted changes are archived before cleanup, and successful regression repairs are committed before further work begins.

Review requires an explicit passing marker and proxy approval. Verification reruns tests and, where supported, a runtime smoke check. Empty suites, unmarked responses and quoted protocol examples cannot establish success.

The learner records patterns and may update the five factory skills. The global KB is local runtime data, initialized from the six principles in global-seed.json. Learned history, generated projects, credentials and run logs stay outside the tracked source tree. Review any learned skill changes before publishing them.

Development

Run the test suite from the repository root with the Python environment active:

cd factory
python -B -m unittest discover -s tests -v

Testing explains what these checks establish and how to validate a real model. AGENTS.md describes phase contracts, recovery, model configuration and the code layout.

License and credits

Siesta is MIT licensed. Its agent workflows adapt agent-skills; the corresponding license is preserved in third-party notices. The execution loop also draws inspiration from Ralph.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add jairorodriguezarias/siesta
New to MCP? Start with the mcpskill.org guide →