{"id":29767677,"url":"https://github.com/brickfrog/rutile","last_synced_at":"2026-02-06T09:01:35.530Z","repository":{"id":304377019,"uuid":"1016463309","full_name":"brickfrog/rutile","owner":"brickfrog","description":"Experimental stack-based DSL meant for LLM usage.","archived":false,"fork":false,"pushed_at":"2025-10-26T02:40:52.000Z","size":2199,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-01T04:52:06.058Z","etag":null,"topics":["dsl","llm","llms","openai-api","programming-language"],"latest_commit_sha":null,"homepage":"","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brickfrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T03:59:00.000Z","updated_at":"2025-10-26T02:40:56.000Z","dependencies_parsed_at":"2025-07-12T18:58:39.452Z","dependency_job_id":null,"html_url":"https://github.com/brickfrog/rutile","commit_stats":null,"previous_names":["brickfrog/rutile"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/brickfrog/rutile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brickfrog%2Frutile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brickfrog%2Frutile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brickfrog%2Frutile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brickfrog%2Frutile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brickfrog","download_url":"https://codeload.github.com/brickfrog/rutile/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brickfrog%2Frutile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29156401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T07:18:23.844Z","status":"ssl_error","status_checked_at":"2026-02-06T07:13:32.659Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dsl","llm","llms","openai-api","programming-language"],"created_at":"2025-07-27T02:13:44.925Z","updated_at":"2026-02-06T09:01:35.523Z","avatar_url":"https://github.com/brickfrog.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"public/logo.png\" alt=\"Rutile Logo\" width=\"200\"/\u003e\n\n  # Rutile\n\n  **Stack-based language for orchestrating Claude Code agents**\n\u003c/div\u003e\n\nStack-based language for coordinating multiple Claude agents. Wraps the `claude` CLI with concatenative programming primitives.\n\n## Features\n\n### Core Language\n- **Stack-based execution**: All operations work on an implicit data stack\n- **Concatenative syntax**: Compose programs by juxtaposing words\n- **Word definitions**: Define custom operations with `: word-name ... ;`\n- **Rich data types**: Numbers, strings, lists, maps, booleans\n- **Bytecode compilation**: Optimized execution with multiple optimization passes\n\n### Claude Integration\n- Spawn multiple Claude agents with different system prompts\n- `claude-call`, `spawn-claude-agent`, `agent-send` primitives\n- Uses `claude --print --output-format json` via subprocess\n- Session persistence per agent\n\n### Standard Library\n- **Stack operations**: `dup`, `drop`, `swap`, `rot`, `over`, etc.\n- **Math \u0026 logic**: Arithmetic, comparisons, trigonometry\n- **String processing**: Concatenation, splitting, regex support\n- **List operations**: `map`, `filter`, `fold`, `each`, list manipulation\n- **I/O**: File operations, console input/output\n- **HTTP**: Client requests, server routing, webhooks\n- **Crypto**: Hashing (SHA256, MD5), Base64, UUID generation\n- **Time**: Date/time operations, sleep, timers\n\n### Development Tools\n- **Interactive REPL**: `rtl repl` for live development\n- **Hot reload**: Live code reloading for rapid iteration\n- **Debugger**: Step-through debugging with `rtl debug`\n- **Testing framework**: Property-based testing with `rtl test`\n- **Static builds**: Generate standalone executables with `rtl build --static`\n- **Project scaffolding**: `rtl new project-name`\n\n## Quick Start\n\n### Installation\n```bash\n# Clone and build (requires Racket)\ngit clone \u003crepo-url\u003e\ncd rutile\nraco pkg install\n```\n\n### Basic Usage\n```bash\n# Start the REPL\nrtl repl\n\n# Run a script\nrtl run script.rtl\n\n# Create a new project\nrtl new my-bot\n\n# Run tests\nrtl test\n```\n\n### Example: Multi-Agent Research\n```rut\n# Spawn specialized research agents\n\"You are a technical researcher\" \"tech\" spawn-claude-agent drop\n\"You are a business analyst\" \"biz\" spawn-claude-agent drop\n\n# Parallel research\n\"Explain quantum computing\" \"tech\" agent-send\n\"Market analysis of quantum computing\" \"biz\" agent-send\n\n# Both responses remain on stack for further processing\n```\n\n### Example: Code Generation Pipeline\n```rut\n# Spawn code agents\n\"You are a code generator\" \"generator\" spawn-claude-agent drop\n\"You are a code reviewer\" \"reviewer\" spawn-claude-agent drop\n\n# Generate and review code\n\"Write a Python function for Fibonacci\" \"generator\" agent-send\ndup \"reviewer\" agent-send  # Send generated code for review\n```\n\n### Example: Agent-Backed API Service\n```rut\n# Spawn service agents\n\"You are a code assistant\" \"code\" spawn-claude-agent drop\n\"You are a general assistant\" \"general\" spawn-claude-agent drop\n\n# Route requests to appropriate agent\n: handle-request ( query agent -- response )\n  agent-send\n;\n\n# Example usage\n\"How do I write a Python function?\" \"code\" handle-request\n```\n\n## Language Reference\n\n### Stack Operations\n```rut\n42 dup          # Duplicate top item: [42 42]\n\"a\" \"b\" swap    # Swap top two: [\"b\" \"a\"]  \n1 2 3 drop      # Drop top item: [1 2]\n1 2 over        # Copy second item to top: [1 2 1]\n```\n\n### Control Flow\n```rut\n: greet ( name -- )\n  \"Hello, \" swap concat \"!\" concat print\n;\n\n42 0 \u003e if \"positive\" else \"negative\" then print\n\n5 times \"hello\" print end\n```\n\n### Claude Operations\n```rut\n# Basic Claude call\n\"Explain photosynthesis\" claude-call\n\n# With system prompt\n{system \"You are a science teacher\"} \"Explain photosynthesis\" claude-call\n\n# Spawn persistent agent\n\"You are a helpful assistant\" \"helper\" spawn-claude-agent\n\"What can you help with?\" \"helper\" agent-send\n\n# Multiple agents working together\n\"You are a researcher\" \"researcher\" spawn-claude-agent\n\"You are an analyst\" \"analyst\" spawn-claude-agent\n\n\"Research quantum computing\" \"researcher\" agent-send\n\"Analyze market trends\" \"analyst\" agent-send\n```\n\n## Project Structure\n\n```\nrutile/\n├── rutile/                      # Core language implementation\n│   ├── parser.rkt               # Tokenizer and parser\n│   ├── vm.rkt                   # Virtual machine\n│   ├── bytecode.rkt             # Bytecode compiler\n│   ├── stdlib.rkt               # Standard library\n│   ├── claude.rkt               # Claude Code integration\n│   ├── http.rkt                 # HTTP client\n│   └── ...\n├── tests/                       # Test suite\n├── examples/                    # Example programs\n│   ├── multi-agent-research.rtl # Parallel research agents\n│   ├── code-pipeline.rtl        # Code generation with review\n│   └── agent-api.rtl            # Agent-backed API service\n└── main.rkt                     # CLI entry point\n```\n\n## Development\n\nThe language is implemented in Racket and uses a bytecode VM for execution. Key components:\n\n- **Parser** (`rutile/parser.rkt`): Tokenization and AST generation\n- **VM** (`rutile/vm.rkt`): Stack-based execution engine\n- **Claude Integration** (`rutile/claude.rkt`): Multi-agent orchestration via Claude Code CLI\n- **Optimizer** (`rutile/optimizer.rkt`): Bytecode optimization passes\n- **Standard Library** (`rutile/stdlib.rkt`): Built-in words and operations\n\n## Status\n\nCore language works. Claude integration works via subprocess calls. See `examples/` for working multi-agent demos.\n\n## License\n\nApache-2.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrickfrog%2Frutile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrickfrog%2Frutile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrickfrog%2Frutile/lists"}