Replace Complex Systems with Shell-Style Scripting in C#

Calq CMD introduces distributed, shell-style scripting to C#, turning complex systems into simple scripts

Why Choose Calq CMD?

Calq CMD brings the power of shell scripting directly into your C# code, enabling you to build powerful, cross-platform automation and complex systems with unparalleled simplicity.

Shell-Style Scripting for C#

Calq CMD provides a unified, distributed, scripting experience for C# that enables unprecedented integration with Bash and PowerShell.

Build CI/CD Beyond Standard DevOps

Develop cross-platform tools and powerful C# automation faster and more efficiently than with scripting languages or shell scripts.

Run Sub-millisecond Python From C#

Execute Python directly within your C# applications, eliminating the overhead of shell execution and microservice communication.

Build Features, Not API

Simplify development and infrastructure with a single, cohesive project, avoiding the complexity of microservices and external services.

Build High-Performance AI Systems

Combine enterprise-grade .NET technology with Python's world-class AI ecosystem.

Process Streaming Data

Create real-time data pipelines without the need for complex, custom solutions.

Build Batch Workloads Effortlessly

Develop applications that are distributed by desiign and shift from local execution to distributed computing on Kubernetes with ease.

Develop Anywhere, Deploy Anywhere

Enjoy a fully local development experience and deploy on-premise or to any cloud provider.

Vibe Coding Demo

Watch how Calq CMD accelerates complex system development.

AI Chatbot with Calq CMD
Chatbot Service Demo
Try Yourself
# SETUP PROJECT
1. Ensure Python h2 package and openssl are installed.
2. Clone https://github.com/calq-framework/cmd.
3. Run `dotnet new webapp --name ChatbotService --no-https`
4. Run `dotnet add reference ../cmd/CalqFramework.Cmd/CalqFramework.Cmd.csproj`. 
5. Copy `cmd\CalqFramework.Cmd\Python\test_tool.py` to `Python\chatbot.py`.
6. For ChatbotService, set `Python\chatbot.py` as CopyToOutputDirectory.
7. Create methodless `ChatbotServerService.cs` that extends `PythonToolServer.cs` only for `chatbot.py` and start it in `Program.cs` at startup.

# IMPLEMENT Python Chatbot as CLI Tool
1. Using Google Python Fire and Google Gemini API streaming text generation, add async generator chat function to `chatbot.py`. There's no need to add any class.
2. Set Generative Model set to `gemini-flash-latest` (not `gemini-1.5-flash`).
3. Use Google AI Studio API KEY `__INSERT_YOUR_API_KEY_HERE__` for Gen AI client.

# TEST Python Chatbot
1. Ensure Python Chatbot works. There's no need for shared state between tests.

# IMPLEMENT Chatbot Service
1. From Calq CMD readme learn PythonTool and, using `CMDV`, create a controller that returns stream output from `chatbot.py` directly as `Task<Stream>`.
2. Using JavaScript, modify home page into a chatbot that reads and displays output stream in real-time.
3. Modify the home page and layout to look modern, using dark grey backgrounds and blue accent

# TEST Chatbot Service
1. Ensure Chatbot Service responds.

Pricing & Licensing

Start building for free on open-source projects, or choose a commercial license to keep your source code private.

Open Source License

Perfect for personal projects, open-source development, and product evaluation. Use freely under the AGPLv3 license terms.

Free: AGPLv3 License

Get Started for Free
By accessing or using the software, you agree to the terms of the AGPLv3 License.
Commercial License

Get a commercial license for more permissive use, allowing you to keep your source code private.

Monthly: $14.47

Buy Monthly

Annual: $144.00

Buy Annual
By purchasing, you agree to the License Agreement, our Terms of Service, and Privacy Policy.

How Calq CMD Stacks Up

See how Calq CMD provides a more streamlined and flexible development experience compared to other common solutions.

Calq CMD vs. Managed Batch Services

Managed services from cloud providers are excellent for running standard, large-scale batch jobs. However, they lock you into a specific provider's ecosystem and lack support for real-time data processing. Calq CMD offers greater flexibility and power by defining all workloads directly in C#, enabling on-premise deployment, and supporting real-time streaming, all while giving you full control over your infrastructure and avoiding vendor lock-in.

Feature Calq CMD on Kubernetes Managed Batch Services (Azure/Google/AWS)
Runnable WorkloadsC#/Python Code & Scripts & ContainersScripts & Containers
Job DefinitionC#Provider-Specific JSON/YAML
OrchestrationC# & Kubernetes CLIProvider-Specific SDK/CLI
Scripting LanguagesC# & Bash/PowerShellBash/PowerShell
SDK LanguagesC#All major languages
Infrastructure as CodeTerraform & Kubernetes ManifestsTerraform & Provider-Specific IaC
MonitoringKubernetesProvider-Specific
Distributed Computing
Composable Pipes
Stream Redirection (via storage services)
Real-Time Streaming
Open Source
Fully Local Development
On-Premise Deployment
Infrastructure CostUnderlying ResourcesUnderlying Resources
Development TimeFast to ModerateModerate to Slow
Calq CMD via Vibe Coding vs. n8n

n8n is a visual workflow automation tool designed for connecting services without code, ideal for non-developers. Calq CMD via Vibe Coding represents a revolutionary approach: AI-driven, code-first development where complex systems are built through natural language instructions. While n8n requires manual visual workflow construction (even with AI assistance), Calq CMD enables developers to describe what they want and let AI generate complete, working systems in minutes—including code, tests, and deployment configurations.

Feature Calq CMD via Vibe Coding n8n
Development ModelCode-First C#Visual Workflow Builder
Custom Code SupportAny language (via shell)JavaScript & Python (in nodes)
Integrations500,000+ NuGet packages400+ pre-built visual nodes
Open Source
Fully Local Development
On-Premise Deployment
Modular Development (sub-workflows)
AI Code Generation (JSON templates)
AI Debugging
AI Testing
Development TimeVery FastFast to Moderate
Calq CMD vs. CliWrap

CliWrap is a fantastic library for executing individual command-line processes within a C# application. Calq CMD takes this a step further by providing a complete framework for building entire systems. While both can execute local commands, only Calq CMD is designed for distributed computing. It offers a context- and platform-aware shell, native Python execution, and the ability to orchestrate complex workflows across multiple machines, making it the superior choice for building distributed tools and pipelines.

Feature Calq CMD CliWrap
Programming ModelShell-Style Scripting & Object ModelFluent Builder Pattern
Real-Time StreamingDirect Stream ControlStructured Event Stream
Open Source
Local Process Execution
Composable Pipes
Stream Redirection
Distributed Computing
Context-Aware Shell
Platform-Aware Shell
Shell Customization
Native Python Execution
Development TimeFastFast to Moderate
Calq CMD vs. Python Microservices

A Python microservices architecture offers scalability but often introduces significant complexity, requiring multiple deployment artifacts and custom solutions for real-time communication. Calq CMD provides the benefits of a distributed system - like high-performance, real-time streaming - within a single, unified application model. This drastically reduces development time and operational overhead, allowing you to achieve sub-millisecond latency without the architectural headaches of managing a distributed system.

Feature Calq CMD Python Microservices
Project ModelSingle ApplicationDistributed System
Deployment ArtifactsSingleMultiple
Real-Time Streaming (via custom SSE or WebSocket)
Sub-ms Latency
Development TimeFastModerate to Slow

Frequently Asked Questions

Is Calq CMD a replacement for Kubernetes?

Can Calq CMD be used without Docker or Kubernetes?

Does Calq CMD replace ASP.NET Core?

Can Calq CMD replace REST APIs?

Ready to Accelerate Your Development?

Get started with Calq CMD and transform your development workflow by seamlessly blending the power of C# with the simplicity of shell scripting
An unhandled error has occurred. Reload đź—™