ChittyCan's architecture allows you to pop any AI model at any juncture in your workflow.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ChittyCan Network Layer β
β (Model-Agnostic Interface) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
ββββββΌβββββ βββββββΌββββββ βββββββΌββββββ
β Model A β β Model B β β Model C β
β Claude β β GPT-4 β β Llama β
βββββββββββ βββββββββββββ βββββββββββββ
β β β
ββββββΌβββββββββββββββββββββΌβββββββββββββββββββββΌβββββ
β Shared Async Workstream β
β β’ Notion sync β
β β’ GitHub webhooks β
β β’ Email routing β
β β’ Document processing β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Stateless Model Interface - Models don't own state, the network does
- Async Handoffs - Tasks can wait for any available model
- Fallback Chains - Automatic failover if a model is unavailable
- Context Sharing - All models can access shared context via ChittyConnect
- Result Aggregation - Combine outputs from multiple models
# Morning: Email arrives with contract
# ChittyRouter (Llama Scout) triages β high priority
can router inbox process
# Afternoon: Claude Code reviews contract
can connect proxy anthropic "Review contract.pdf for liability clauses"
# Evening: GPT-4 drafts response (better at formal writing)
can connect proxy openai "Draft professional response to contract terms"
# Night: Local Mistral handles simple acknowledgment
can router agent invoke response --email xyz789 --template standardModels used: 4 different models, one seamless workflow
# Model 1: Claude Code analyzes codebase
can doctor # Uses local AI to check environment
# Model 2: ChittyConnect routes to GPT-4 for architecture review
can connect proxy openai "Review Cloudflare Worker architecture"
# Model 3: ChittyRouter Llama Scout prioritizes deployment queue
can router rules create --condition "branch:main" --action "priority:high"
# Model 4: Local model monitors and alerts
can registry service health chittyauth# Async Task 1: Claude monitors Notion for changes
can sync run &
# Async Task 2: GPT-4 generates commit messages via ChittyConnect
can connect github sync --repo chittyos/chittycan &
# Async Task 3: Llama Scout triages incoming issues
can router inbox list --unread &
# Async Task 4: Local model sends nudges
can nudge quiet &
# All 4 models working simultaneously! πChittyRouter fallback chain:
can router models fallback-chain
# Output:
# 1. @cf/meta/llama-4-scout-17b-16e-instruct (primary)
# 2. gpt-4 (via ChittyConnect proxy)
# 3. claude-sonnet-4-5 (via ChittyConnect proxy)
# 4. local-mistral (fallback)ChittyConnect proxy configuration:
{
"remotes": {
"connect": {
"type": "chittyconnect",
"baseUrl": "https://connect.chitty.cc",
"apiToken": "...",
"proxies": {
"openai": {
"enabled": true,
"apiKey": "sk-...",
"defaultModel": "gpt-4"
},
"anthropic": {
"enabled": true,
"apiKey": "sk-ant-...",
"defaultModel": "claude-sonnet-4-5"
},
"local": {
"enabled": true,
"endpoint": "http://localhost:1234/v1"
}
}
}
}
}Assign specific models to specific tasks:
- Code generation β Claude Sonnet (best at code)
- Formal writing β GPT-4 (best at professional tone)
- Fast triage β Llama Scout (fast + cheap)
- Local privacy β Local Mistral (sensitive data)
# config.json
{
"modelAssignments": {
"code": "claude-sonnet-4-5",
"writing": "gpt-4",
"triage": "llama-scout",
"private": "local-mistral"
}
}Use multiple models for critical decisions:
# Get opinions from 3 models on contract risk
RESULTS=$(
can connect proxy openai "Rate contract risk 1-10" &
can connect proxy anthropic "Rate contract risk 1-10" &
can router agent invoke priority --email contract123 &
wait
)
# Average the results
echo $RESULTS | jq '.[] | .risk' | awk '{sum+=$1} END {print sum/NR}'Route to cheaper models for simple tasks:
function selectModel(task: Task): string {
if (task.complexity === "simple") {
return "llama-scout"; // $0.001/1K tokens
} else if (task.complexity === "medium") {
return "gpt-3.5-turbo"; // $0.002/1K tokens
} else {
return "gpt-4"; // $0.03/1K tokens
}
}Use different models in different regions:
# US: Use Cloudflare Workers AI (llama-scout)
can router inbox process --region us-east
# EU: Use local model for GDPR compliance
can router inbox process --region eu-west --model local-mistral
# Asia: Use GPT-4 via ChittyConnect proxy
can router inbox process --region ap-south --model gpt-4If OpenAI is down, automatically failover to Anthropic or local models.
Before ChittyCan:
- All tasks use GPT-4: $500/month
After ChittyCan:
- Simple tasks (70%): Llama Scout: $7/month
- Medium tasks (20%): GPT-3.5: $20/month
- Complex tasks (10%): GPT-4: $50/month
Total: $77/month (85% savings!)
- Fast models for triage (< 100ms)
- Slow models only when needed
- Parallel processing across models
- Sensitive data β local models
- Public data β cloud models
- Automatic routing based on data classification
New model released? Just add it to the config. Your workflow doesn't change.
# Tomorrow: New model "gpt-5" released
can connect integration add openai --model gpt-5
# Your existing workflows automatically use it πWorkflow: Email triage β Document analysis β Response drafting
Before (single model):
- Average response time: 4 hours
- Cost: $800/month
- Model availability: 99.5%
After (multi-model):
- Average response time: 1.5 hours (async + parallel)
- Cost: $180/month (model specialization)
- Model availability: 99.99% (fallback chains)
Result: 62.5% faster, 77.5% cheaper, more reliable
# Set up ChittyConnect proxies
can config
# Choose: New remote β ChittyConnect
# Enable: OpenAI, Anthropic, Local model
# Set up ChittyRouter fallback chain
can router models fallback-chainCreate ~/.config/chitty/models.json:
{
"assignments": {
"email.triage": "llama-scout",
"email.response": "gpt-4",
"code.review": "claude-sonnet-4-5",
"docs.generation": "gpt-3.5-turbo"
},
"fallbacks": {
"llama-scout": ["gpt-3.5-turbo", "local-mistral"],
"gpt-4": ["claude-sonnet-4-5", "gpt-3.5-turbo"],
"claude-sonnet-4-5": ["gpt-4", "local-mistral"]
}
}# Process inbox with automatic model selection
can router inbox process
# Models used will be logged:
# β Triage: llama-scout (127ms, $0.001)
# β Priority: gpt-3.5-turbo (342ms, $0.002)
# β Response: gpt-4 (1.2s, $0.045)
# Total: 1.67s, $0.048// Simplified ChittyRouter agent invocation
async function invokeAgent(agentName: string, emailId: string) {
// 1. Get model assignment
const model = getModelForAgent(agentName);
// 2. Try primary model
try {
return await callModel(model, emailId);
} catch (error) {
// 3. Fallback chain
const fallbacks = getFallbackChain(model);
for (const fallbackModel of fallbacks) {
try {
return await callModel(fallbackModel, emailId);
} catch (e) {
continue;
}
}
throw new Error("All models failed");
}
}All models access shared context via ChittyConnect's ContextConsciousness:
// Model A stores context
await context.store({
sessionId: "email-123",
data: { sentiment: "positive", priority: "high" }
});
// Model B retrieves context
const ctx = await context.retrieve("email-123");
// { sentiment: "positive", priority: "high" }
// Model C updates context
await context.update("email-123", {
responseGenerated: true
});# Check model status
can connect integrations list
can router models test
# Update fallback chain
can router models fallback-chain --set llama-scout,gpt-4,claude# Analyze model usage
can router analytics agents
can connect proxy usage
# Adjust assignments to cheaper models
vim ~/.config/chitty/models.json# Use faster models for triage
can router rules create \
--condition "priority:low" \
--action "model:llama-scout"
# Parallel processing
can router inbox process --parallel 10ChittyCan's model-agnostic networked async workstream is what makes it truly "completely autonomous". Drop any model at any point, and the network keeps working.
The future is multi-model. ChittyCan makes it easy.