{% extends "base.html" %} {% block title %}Philosophy - CmdForge{% endblock %} {% block meta_description %}The philosophy behind CmdForge: from fragmented libraries to composable capabilities. Learn why we're building a new way to create software.{% endblock %} {% block content %}
Software development is changing. CmdForge is our attempt to make it simpler, more composable, and accessible to everyone.
I first learned to code on a Commodore VIC-20, writing BASIC before DOS existed. I've watched computing evolve through every major shift: from single programs to functions, from functions to libraries, from libraries to frameworks, from frameworks to microservices.
Each evolution promised to make things easier. And in many ways, they did. But something else happened too: fragmentation.
Open source gave us everything we could ever want. Thousands of contributors building solutions to every problem imaginable. But finding the right solution became the problem itself.
"Like digging through a giant bin of tangled circuits..."
"Like an organized workshop with a knowledgeable shopkeeper..."
What if we stopped thinking about libraries and started thinking about capabilities?
A library is code you integrate. A capability is something you ask for.
Instead of searching through npm, pip, or crates.io for the right package, what if you could just describe what you need?
"I need something that extracts key points from meeting transcripts."
And the system either finds an existing tool that does exactly that, or creates one for youβand shares it back so the next person doesn't have to ask.
Ask for what you need. CmdForge finds it, composes it, or creates it.
flowchart TD
User["π€ Developer / System"]
AI["π€ CmdForge AI Assistant"]
Registry["π¦ Tool Registry"]
Tool1["π§ Tool: Parse CSV"]
Tool2["π§ Tool: Send Email"]
Tool3["π§ Tool: Query API"]
NewTool["β¨ Generated Tool"]
User --> AI
AI --> Registry
Registry --> Tool1
Registry --> Tool2
Registry --> Tool3
AI -->|Compose Tools| Execution["βοΈ Execution Pipeline"]
AI -->|If missing| NewTool
NewTool --> Registry
Execution --> Result["β
Result"]
Result --> User
Each tool does one thing well. Combined, they create complex workflows.
Describe what you need in natural language. AI finds or creates it.
cmdforge registry describe "analyze sentiment"
Tools chain together with Unix pipes. No dependency management.
cat data.csv | analyze | report
Every tool you create can benefit others. Build on each other's work.
cmdforge registry publish
"If something has been built once, it should be reusable forever.
Not as a library. Not as a framework.
But as a capability anyone can call."
Tools can call other tools. Complex systems emerge from simple parts.
flowchart LR
A["Tool A"] --> B["Tool B"]
B --> C["Tool C"]
A --> D["Tool D"]
subgraph Composable System
A
B
C
D
end
Tools shared across machines. Distributed capabilities for distributed systems.
flowchart LR
Node1["π₯οΈ Node A"]
Node2["π₯οΈ Node B"]
Node3["π₯οΈ Node C"]
ToolA["π§ Tools"]
ToolB["π§ Tools"]
ToolC["π§ Tools"]
Node1 --> ToolA
Node2 --> ToolB
Node3 --> ToolC
Node1 <-->|Call Tools| Node2
Node2 <-->|Call Tools| Node3
Node1 <-->|Call Tools| Node3
Coming soon: Expose tools over a port for distributed execution across your infrastructure.