Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ jobs:
node-version: ${{ matrix.node-version }}
cache: 'yarn'

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: yarn install --frozen-lockfile

Expand Down Expand Up @@ -52,6 +55,9 @@ jobs:
node-version: 20.x
cache: 'yarn'

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: yarn install --frozen-lockfile

Expand Down
170 changes: 170 additions & 0 deletions manifesto.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# The CLICP Manifesto: Why Command Line Interface Context Protocol is Superior to MCP

## The Fundamental Problem with MCP

The Model Context Protocol (MCP) represents a well-intentioned but fundamentally flawed approach to connecting AI models with external systems. While MCP attempts to create a "USB-C port for AI applications," it introduces unnecessary complexity and abstractions that actually hinder rather than help AI model performance.

## Why CLICP is the Better Path Forward

### 1. LLMs Are Already CLI Experts

Large Language Models have been trained on vast amounts of code, documentation, and system administration content. They inherently understand:

- Command-line interfaces and their patterns
- Shell scripting and automation
- Unix philosophy and tool composition
- Standard input/output patterns
- Error handling through exit codes

**The evidence is overwhelming**: When you ask an LLM to perform a system task, it naturally thinks in terms of CLI commands. Why force it through an artificial protocol when it already speaks the native language of systems?

### 2. The Devbox Advantage

Modern AI development already assumes sandboxed environments:

- **Security**: Isolated execution environments are a necessity, not a luxury
- **Reproducibility**: Containerized environments ensure consistent behavior
- **Scalability**: Devboxes can be spun up and torn down as needed
- **Simplicity**: No need for complex protocol implementations

Since we're already giving AI models access to sandboxed development environments, the most natural interface is the command line that already exists in every such environment.

### 3. Zero Protocol Overhead

CLICP eliminates the need for:
- Custom protocol implementations
- Server/client architecture complexity
- JSON-RPC message passing
- Protocol versioning and compatibility issues
- Specialized debugging tools

Instead, CLICP leverages:
- **Standard CLI tools** that already exist
- **Shell pipes and redirection** for data flow
- **Exit codes** for error handling
- **Standard streams** (stdin/stdout/stderr) for communication
- **Existing debugging tools** (strace, ltrace, etc.)

### 4. Universal Compatibility

Every system that can run an AI model can run CLI commands. CLICP works with:
- Any Unix-like system (Linux, macOS, BSD)
- Windows with WSL or PowerShell
- Container environments
- Cloud instances
- Edge devices

No additional servers, no protocol implementations, no compatibility matrices.

### 5. Composability and Power

CLI tools follow the Unix philosophy of doing one thing well and composing together:

```bash
# Natural AI thinking pattern
find . -name "*.py" | xargs grep -l "TODO" | head -10
```

This is far more intuitive for an LLM than constructing complex MCP protocol messages to achieve the same result.

### 6. Real-World Evidence

Consider this tweet from Jay Hack (@mathemagic1an):

> [Reference to tweet about LLMs being naturally good with CLIs and devboxes making sense]

The evidence from actual AI model usage patterns consistently shows that models perform better when working with familiar CLI interfaces rather than abstract protocols.

## The MCP Complexity Tax

MCP introduces several layers of unnecessary complexity:

1. **Protocol Implementation**: Every tool needs MCP server implementation
2. **Message Serialization**: JSON-RPC overhead for simple operations
3. **Connection Management**: WebSocket or stdio connection handling
4. **Error Mapping**: Translating system errors to protocol errors
5. **Documentation Overhead**: Protocol specs in addition to tool documentation

## CLICP's Elegant Simplicity

CLICP's approach is radically simpler:

1. **Direct Execution**: AI models execute commands directly
2. **Native Error Handling**: Standard exit codes and stderr
3. **Streaming Output**: Real-time stdout/stderr streams
4. **Zero Setup**: Works in any environment with a shell
5. **Self-Documenting**: `--help` flags and man pages

## Performance Implications

### MCP Overhead
- Protocol parsing and validation
- Network or IPC communication
- JSON serialization/deserialization
- Connection establishment and teardown

### CLICP Efficiency
- Direct process execution
- Native OS process management
- Minimal memory overhead
- No serialization overhead

## Security Model

### MCP Security Concerns
- Protocol-level vulnerabilities
- Server implementation bugs
- Complex permission models
- Attack surface of protocol stack

### CLICP Security Advantages
- Leverages OS-level security (users, groups, permissions)
- Standard sandboxing mechanisms (containers, chroot, etc.)
- Well-understood attack vectors
- Decades of hardening in CLI tools

## Developer Experience

### MCP Development
```python
# Complex MCP server implementation
class MyMCPServer:
def __init__(self):
self.setup_protocol()
self.register_tools()

async def handle_request(self, request):
# Protocol parsing, validation, etc.
pass
```

### CLICP Development
```bash
#!/bin/bash
# Just write a CLI tool
echo "Hello, World!"
```

The difference is stark. CLICP leverages decades of CLI tool development experience and patterns.

## The Path Forward

The future of AI-system integration lies not in inventing new protocols, but in embracing the interfaces that already work:

1. **Standardize on CLI interfaces** for AI-accessible tools
2. **Leverage existing sandboxing** technologies
3. **Build on proven patterns** rather than reinventing them
4. **Focus on tool quality** rather than protocol complexity

## Conclusion

CLICP represents a return to first principles: use the right tool for the job. When the job is connecting AI models to system capabilities, the right tool is the command line interface that models already understand and that systems already provide.

The Model Context Protocol, despite its good intentions, is a solution in search of a problem. The problem of AI-system integration is already solved by the command line interface. We just need to embrace it.

**CLICP: Because the best protocol is no protocol at all.**

---

*This manifesto reflects the core philosophy behind CLICP: that simplicity, compatibility, and leveraging existing patterns will always triumph over complex abstractions and reinvented wheels.*

Loading