{"id":31788434,"url":"https://github.com/light-merlin-dark/aia","last_synced_at":"2026-07-16T21:39:59.967Z","repository":{"id":299370038,"uuid":"1002584865","full_name":"light-merlin-dark/aia","owner":"light-merlin-dark","description":"Parallel AI model consultation with intelligent failover. CLI \u0026 MCP Server. Automatic retry, real-time cost tracking.","archived":false,"fork":false,"pushed_at":"2026-01-31T06:42:47.000Z","size":468,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-16T21:39:20.699Z","etag":null,"topics":["ai","ai-consultation","anthropic","cli","cost-tracking","llm","mcp","openai","parallel-execution"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/light-merlin-dark.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-15T19:21:00.000Z","updated_at":"2025-11-02T22:16:57.000Z","dependencies_parsed_at":"2026-03-23T05:04:37.390Z","dependency_job_id":null,"html_url":"https://github.com/light-merlin-dark/aia","commit_stats":null,"previous_names":["light-merlin-dark/aia"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/light-merlin-dark/aia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/light-merlin-dark%2Faia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/light-merlin-dark%2Faia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/light-merlin-dark%2Faia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/light-merlin-dark%2Faia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/light-merlin-dark","download_url":"https://codeload.github.com/light-merlin-dark/aia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/light-merlin-dark%2Faia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35559858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-16T02:00:06.687Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai","ai-consultation","anthropic","cli","cost-tracking","llm","mcp","openai","parallel-execution"],"created_at":"2025-10-10T14:18:21.021Z","updated_at":"2026-07-16T21:39:59.961Z","avatar_url":"https://github.com/light-merlin-dark.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n █████╗ ██╗ █████╗\n██╔══██╗██║██╔══██╗\n███████║██║███████║\n██╔══██║██║██╔══██║\n██║  ██║██║██║  ██║\n╚═╝  ╚═╝╚═╝╚═╝  ╚═╝\n\nParallel AI model consultation with intelligent failover\nCLI \u0026 MCP Server • Query multiple models simultaneously • Automatic retry and cost tracking\n```\n\n## Why AIA?\n\n- Query multiple AI models in parallel (GPT-4, Claude, 50+ models via OpenRouter)\n- Automatic retry with intelligent failover (60s timeout, 90s retry with exponential backoff)\n- Real-time cost tracking with configurable pricing (per-model token usage and cost breakdown)\n- Encrypted credential storage (AES-256-GCM, local-only key management)\n- Plugin architecture for easy provider integration\n\n## Install\n\n```bash\nnpm install -g @light-merlin-dark/aia\n```\n\n## Quick Start\n\n```bash\n# First run launches interactive setup\naia consult \"Explain async/await in JavaScript\"\n\n# Query multiple models in parallel\naia consult \"Review this code for performance issues\" -m gpt-4-turbo claude-sonnet-4 -f src/api.ts\n\n# Attach entire directories\naia consult \"Analyze project structure\" -d src/ tests/\n\n# Best-of selection mode\naia consult \"Complex architecture question\" -m gpt-4 claude-3-opus --best-of\n```\n\nAll consultations return structured JSON with usage stats and cost breakdowns.\n\n## Core Commands\n\n### Consultation\n\n```bash\n# Single model (uses configured default)\naia consult \"Your question here\"\naia c \"Your question here\"  # Short alias\n\n# Multiple models in parallel\naia consult \"Compare approaches\" -m gpt-4-turbo claude-sonnet-4 openrouter/google/gemini-2-pro\n\n# Attach files for context\naia consult \"Review this implementation\" -f src/api.ts src/types.ts\n\n# Attach directories\naia consult \"Analyze codebase\" -d src/ -d tests/\n\n# Best-of selection (evaluates responses and picks best)\naia consult \"Critical decision\" -m gpt-4 claude-3-opus --best-of\n```\n\n### Configuration\n\n```bash\n# View current config (secrets masked)\naia config list\n\n# Set default model\naia config set-default anthropic/claude-sonnet-4\n\n# Set default service (used when no model specified)\naia config set-default-service anthropic\n\n# Configure pricing for cost tracking ($ per 1M tokens)\naia services cost set openai gpt-4-turbo --input 10 --output 30\naia services cost list\n\n# Manage services interactively\naia services\n\n# Backup and restore\naia config backup my-backup\naia config list-backups\naia config restore my-backup\n\n# Reset configuration\naia reset\n```\n\n### Diagnostics\n\n```bash\n# System health check\naia doctor\n\n# View logs with filtering\naia config view-logs --level ERROR --search timeout --lines 50\n```\n\n## Configuration\n\nConfiguration is stored encrypted in `~/.aia/config.enc`:\n\n```json\n{\n  \"services\": {\n    \"openai\": {\n      \"apiKey\": \"sk-...\",\n      \"models\": [\"gpt-4-turbo\", \"o3-mini\"],\n      \"pricing\": {\n        \"gpt-4-turbo\": {\n          \"inputCostPerMillion\": 10,\n          \"outputCostPerMillion\": 30\n        }\n      }\n    },\n    \"anthropic\": {\n      \"apiKey\": \"sk-ant-...\",\n      \"models\": [\"claude-sonnet-4-20250514\"],\n      \"pricing\": {\n        \"claude-sonnet-4-20250514\": {\n          \"inputCostPerMillion\": 3,\n          \"outputCostPerMillion\": 15\n        }\n      }\n    },\n    \"default\": {\n      \"service\": \"anthropic\"\n    }\n  }\n}\n```\n\nOptional environment variables:\n- `OPENAI_API_KEY` - OpenAI API key\n- `ANTHROPIC_API_KEY` - Anthropic API key\n- `OPENROUTER_API_KEY` - OpenRouter API key\n- `AIA_CONFIG_DIR` - Custom config directory\n\n## Plugin System\n\nBuilt-in providers:\n- **OpenAI**: O3-mini, GPT-4, GPT-4 Turbo, GPT-3.5-turbo\n- **Anthropic**: Claude Sonnet 4, Claude Opus 4, Claude 3 models\n- **OpenRouter**: Gateway to 50+ models (Gemini, Mixtral, Llama, etc.)\n\nCreate custom plugins:\n\n```typescript\nimport { AIProviderPlugin } from 'aia/types';\n\nconst myPlugin: AIProviderPlugin = {\n  name: 'my-provider',\n  version: '1.0.0',\n\n  async listModels() {\n    return ['model-1', 'model-2'];\n  },\n\n  async execute(model, prompt, options) {\n    // Your API integration\n    return {\n      content: response,\n      metadata: { tokensUsed: 100 }\n    };\n  },\n\n  validateConfig(config) {\n    return !!config.apiKey;\n  },\n\n  getRequiredEnvVars() {\n    return ['MY_PROVIDER_API_KEY'];\n  }\n};\n\nexport default myPlugin;\n```\n\n## MCP Server\n\nAIA includes an MCP server for integration with Claude Code, Claude Desktop, and other MCP-compatible tools.\n\n### Setup\n\n```bash\n# Install as MCP server\naia install\n```\n\n### Available Tools\n\n**Core Consultation:**\n- `consult` - Query multiple models with file attachments and cost tracking\n- `config-list` - View configuration (secrets masked)\n- `config-get` - Get service-specific configuration\n- `config-set` - Update configuration values\n- `config-remove` - Remove services\n\n**Model Management:**\n- `config-add-model` - Add models to services\n- `config-set-default` - Set default model\n- `config-set-default-service` - Set default service\n- `config-clear-default` - Clear default model\n- `config-set-pricing` - Configure cost tracking\n- `config-get-pricing` - View pricing information\n\n**Diagnostics:**\n- `doctor` - System health check with plugin status\n- `config-view-logs` - View and filter server logs\n- `config-backup` - Backup configuration\n- `config-list-backups` - List available backups\n\nSee [MCP Usage Guide](docs/mcp-usage-guide.md) for detailed examples.\n\n## Response Format\n\nAll consultation responses include structured data:\n\n```json\n{\n  \"responses\": [\n    {\n      \"model\": \"gpt-4-turbo\",\n      \"provider\": \"openai\",\n      \"content\": \"...\",\n      \"usage\": {\n        \"promptTokens\": 150,\n        \"completionTokens\": 350,\n        \"totalTokens\": 500\n      }\n    }\n  ],\n  \"failed\": [],\n  \"durationMs\": 3456,\n  \"bestIndex\": 0,\n  \"costs\": [\n    {\n      \"model\": \"gpt-4-turbo\",\n      \"promptCost\": 0.0015,\n      \"completionCost\": 0.0105,\n      \"totalCost\": 0.012\n    }\n  ],\n  \"totalCost\": 0.012\n}\n```\n\n## Development\n\n```bash\n# Clone and install\ngit clone https://github.com/light-merlin-dark/ai-advisor.git\ncd ai-advisor\nmake install\n\n# Development\nmake dev          # Run CLI in development\nmake mcp-dev      # Run MCP server\nmake test         # Run test suite\nmake lint         # Lint code\n\n# Release\nmake release      # Full release workflow (lint, test, build, publish)\n```\n\n### Project Structure\n\n```\naia/\n├── src/           # Core application code\n├── plugins/       # Provider plugin implementations\n├── scripts/       # Development automation\n├── tests/         # Test suites\n└── docs/          # Documentation\n```\n\n## Security\n\n- AES-256-GCM encryption for credentials\n- Local-only key management (keys never leave your machine)\n- Path validation against directory traversal\n- Input sanitization for safe handling\n- Automatic rate limiting per provider\n\n## Performance\n\n- Parallel execution with Promise.allSettled\n- Connection pooling (reused HTTP clients per provider)\n- Lazy plugin loading (loaded only when needed)\n- Smart timeouts (60s first attempt, 90s retry)\n- Minimal orchestration overhead (\u003c100ms)\n\n## License\n\nMIT\n\n---\n\nBuilt by [Robert E. Beckner III (Merlin)](https://rbeckner.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flight-merlin-dark%2Faia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flight-merlin-dark%2Faia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flight-merlin-dark%2Faia/lists"}