{"id":49596803,"url":"https://github.com/raylanlin/smarttune-cli","last_synced_at":"2026-05-10T11:00:44.820Z","repository":{"id":355443936,"uuid":"1227994782","full_name":"raylanlin/smarttune-cli","owner":"raylanlin","description":"SmartTune CLI — Multi-platform flight log analysis \u0026 tuning advisor (ArduPilot + Betaflight + PX4)","archived":false,"fork":false,"pushed_at":"2026-05-05T14:48:10.000Z","size":1655,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-06T07:03:13.395Z","etag":null,"topics":["ardupilot","betaflight","cli","drone","fft-analysis","flight-controller","log-analysis","pid-tuning","px4","python","tuning"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/raylanlin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-03T13:00:36.000Z","updated_at":"2026-05-06T05:14:38.000Z","dependencies_parsed_at":"2026-05-06T07:01:58.771Z","dependency_job_id":null,"html_url":"https://github.com/raylanlin/smarttune-cli","commit_stats":null,"previous_names":["raylanlin/smarttune-cli"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/raylanlin/smarttune-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raylanlin%2Fsmarttune-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raylanlin%2Fsmarttune-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raylanlin%2Fsmarttune-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raylanlin%2Fsmarttune-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raylanlin","download_url":"https://codeload.github.com/raylanlin/smarttune-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raylanlin%2Fsmarttune-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32728380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ardupilot","betaflight","cli","drone","fft-analysis","flight-controller","log-analysis","pid-tuning","px4","python","tuning"],"created_at":"2026-05-04T05:01:38.890Z","updated_at":"2026-05-10T11:00:44.813Z","avatar_url":"https://github.com/raylanlin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/banner-hero.png\" alt=\"SmartTune\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eFlight log analysis, designed for AI agents\u003c/strong\u003e\u003cbr\u003e\n  Machine-readable output · Structured data · No GUI · Zero cloud\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/raylanlin/smarttune-cli/releases\"\u003e\u003cimg src=\"https://img.shields.io/badge/version-2.1.0-blue?logo=github\" alt=\"v2.1.0\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.python.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.9%2B-3776AB?logo=python\" alt=\"Python 3.9+\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/raylanlin/smarttune-cli/actions\"\u003e\u003cimg src=\"https://img.shields.io/badge/tests-96%20passed-brightgreen\" alt=\"Tests\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  ArduPilot · Betaflight · PX4\u003cbr\u003e\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e ·\n  \u003ca href=\"#for-agents\"\u003eFor Agents\u003c/a\u003e ·\n  \u003ca href=\"#commands\"\u003eCommands\u003c/a\u003e ·\n  \u003ca href=\"#output-formats\"\u003eOutput Formats\u003c/a\u003e ·\n  \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **SmartTune is a tuning CLI built for the age of AI-assisted flight log analysis.**  \n\u003e Every output is structured. Every command is deterministic. No TUI, no blocking prompts, no interactive workflows that break when called by an agent. It was designed from day one to be invoked by LLM agents as a tool — but more importantly, to teach those agents how to tune a flight controller.  \n\u003e  \n\u003e Agents like OpenClaw, Hermes, Codex, and Claude Code can now truly *learn* APM/BF/PX4 tuning through SmartTune's structured outputs, confidence-scored recommendations, and inspectable knowledge base. It's not just a tool agents call — it's how agents learn the craft.\n\n---\n\n## Install\n\n```bash\npip install git+https://github.com/raylanlin/smarttune-cli.git\n\n# With all platform extras\npip install \"git+https://github.com/raylanlin/smarttune-cli.git#egg=smarttune[all]\"\n\n# Development\ngit clone https://github.com/raylanlin/smarttune-cli.git\ncd smarttune-cli\npip install -e \".[dev,all]\"\n```\n\n\u003e Requires Python 3.9+\n\n---\n\n## For Agents\n\nSmartTune was designed specifically for **LLM agent tool-calling workflows**. Every aspect of the CLI follows agent-friendly principles:\n\n| Principle | Implementation |\n|-----------|---------------|\n| **Deterministic output** | No interactive prompts, no TUI, no progress bars when piped to files. Same input → same output. |\n| **Structured by default** | JSON output via `--format json`. No parsing fragile ANSI-escaped terminal dumps. |\n| **Self-describing** | `stune platforms` lists available adapters. Error codes are standardized (E10xx–E50xx). Exit codes are meaningful. |\n| **Fail-fast \u0026 isolated** | Single-module failure doesn't abort the full analysis. Each module gets its own try/except block. |\n| **Config-free** | Zero config files needed. Everything is flags or auto-detected. No env vars required. |\n| **Offline-first** | No network calls. No API keys. No rate limits. Safe for isolated/air-gapped environments. |\n| **Machine-recommendable** | Tuning suggestions include confidence scores and reasoning, not just parameter values. Agents can weigh multiple recommendations. |\n\n### What agents can learn through SmartTune\n\nSmartTune isn't just a tool agents *call* — it's how agents learn the craft of flight controller tuning:\n\n| Skill | How SmartTune teaches it |\n|-------|--------------------------|\n| **PID tuning intuition** | Step-response analysis with confidence scores. Agents learn which overshoot/rise-time patterns call for higher Kp vs. damping. |\n| **Frequency-domain reasoning** | FFT spectra with peak detection. Agents learn to distinguish vibration sources (prop/ motor/ frame resonance) from the spectrum shape. |\n| **Filter design logic** | Notch and low-pass filter recommendations with Bode plots. Agents see the tradeoff between filtering and phase lag. |\n| **Platform differences** | ArduPilot vs Betaflight parameter conventions. ParamRef maps between them — agents learn to translate tuning knowledge across platforms. |\n| **Safety awareness** | All recommendations are capped at ±20%. Agents learn conservative tuning by default. |\n| **Rule-based reasoning** | The 6-layer knowledge base is plain JSON. Agents can read, understand, and even propose rule changes by writing to their user layer. |\n\n### What agents can do with SmartTune\n\n- **Batch analysis** — analyze hundreds of logs with a loop; JSON output per file\n- **Auto-tuning** — feed recommendations back into a flight controller via MAVLink or CLI\n- **Fleet monitoring** — aggregate vibration/PID metrics across multiple aircraft\n- **CI/CD integration** — run `stune analyze` as part of a pre-flight validation pipeline\n- **Collaborative diagnosis** — have the agent compare logs from before/after a crash\n\n---\n\n## Quick Start\n\n```bash\n# Full analysis (auto-detect platform)\nstune analyze -i flight.bin\n\n# JSON output for agent consumption\nstune analyze -i flight.bin --format json\n\n# With charts (human-friendly)\nstune analyze -i flight.bbl --visual\n\n# Per-module deep dive\nstune pid -i flight.bin -a roll --visual\nstune fft -i flight.bin --visual\nstune magfit -i flight.bin\nstune sysid -i flight.bin -a pitch\nstune hardware -i flight.bin\n\n# Export to Markdown report\nstune analyze -i flight.bin --format markdown -o report.md\n\n# List supported platforms\nstune platforms\n```\n\n---\n\n## Output Formats\n\nSmartTune supports multiple output formats, each designed for a specific consumption mode:\n\n| Format | Use Case | Example |\n|--------|----------|---------|\n| **Terminal** | Human inspection in the shell | `stune analyze -i flight.bin` |\n| **JSON** | Agent/script consumption | `stune analyze -i flight.bin --format json` |\n| **Markdown** | Reports, READMEs, documentation | `stune analyze -i flight.bin --format markdown -o report.md` |\n| **HTML** | Visual reports with embedded charts | `stune analyze -i flight.bin --visual --format html` |\n\n### JSON output example\n\n```json\n{\n  \"platform\": \"ArduPilot\",\n  \"timestamp\": \"2026-05-03T22:30:00\",\n  \"pid\": {\n    \"roll\": {\n      \"rating\": \"GOOD\",\n      \"confidence\": 0.87,\n      \"kp\": {\"current\": 0.12, \"recommended\": 0.14, \"reason\": \"Slight oscillation at 8 Hz\"},\n      \"ki\": {\"current\": 0.05, \"recommended\": 0.05, \"reason\": \"No steady-state error\"},\n      \"max_overshoot_pct\": 8.2,\n      \"rise_time_ms\": 85,\n      \"settling_time_ms\": 210\n    }\n  },\n  \"fft\": {\n    \"vibration\": {\n      \"level_rms\": 2.1,\n      \"grade\": \"EXCELLENT\"\n    },\n    \"peaks\": [\n      {\"freq_hz\": 47.5, \"magnitude_db\": -12.3, \"source\": \"propeller\"}\n    ]\n  }\n}\n```\n\n---\n\n## Commands\n\n### `stune analyze`\n\nFull-spectrum analysis: PID + FFT + MagFit + hardware — all in one pass.\n\n```bash\nstune analyze -i flight.bin                           # Auto-detect\nstune analyze -i flight.bbl --platform betaflight      # Force platform\nstune analyze -i flight.bin --visual                   # With charts\nstune analyze -i flight.bin --format json              # Machine-readable\nstune analyze -i flight.bin -o report.md               # Export\n```\n\n### `stune pid`\n\nPID step-response analysis with per-axis tuning recommendations.\n\n```bash\nstune pid -i flight.bin                                # All axes\nstune pid -i flight.bin -a roll                        # Single axis\nstune pid -i flight.bbl --visual                       # Betaflight\n```\n\n### `stune fft`\n\nFrequency-domain vibration analysis with notch filter suggestions.\n\n```bash\nstune fft -i flight.bin                                # Full spectrum\nstune fft -i flight.bin --visual                       # With spectrum plot\n```\n\n### `stune magfit`\n\nMagnetometer calibration — hard/soft iron offset, coverage, field strength.\n\n```bash\nstune magfit -i flight.bin                             # ArduPilot only\n```\n\n### `stune sysid`\n\nARX system identification — natural frequency and damping ratio.\n\n```bash\nstune sysid -i flight.bin -a roll                      # Single axis\nstune sysid -i flight.bin -a pitch --na 4 --nb 3       # Custom order\n```\n\n### `stune hardware`\n\nFull hardware configuration report: firmware version, sensors, battery, parameters.\n\n```bash\nstune hardware -i flight.bin\nstune hardware -i flight.bbl\n```\n\n### `stune filter`\n\nFilter chain analysis with Bode plots.\n\n```bash\nstune filter -i flight.bin --gyro-filter 40 --visual\nstune filter -i flight.bin --auto                     # Auto-derive from params\n```\n\n### `stune platforms`\n\nList all available platform adapters and their capabilities.\n\n```bash\nstune platforms\n```\n\n---\n\n## Supported Platforms\n\n| Platform | Log Format | Parser | Status |\n|----------|-----------|--------|--------|\n| **ArduPilot** | `.bin` / `.log` (DataFlash) | pymavlink | ✅ Full support |\n| **Betaflight** | `.bbl` / `.bfl` (Blackbox) | Pure Python | ✅ Full support |\n| **PX4** | `.ulg` (ULog) | pyulog | 🔲 Coming in v2.x |\n\n### Auto-Detection\n\nSmartTune identifies your log format from file headers — no `--platform` flag needed:\n\n| Bytes | Platform |\n|-------|----------|\n| `0xA3 0x95` | ArduPilot DataFlash |\n| `H Product:Blackbox` | Betaflight Blackbox |\n| ULog magic | PX4 ULog |\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────┐\n│  CLI Layer                                   │\n│  stune analyze / pid / fft / ...            │\n│  --format json / markdown / html / terminal  │\n└──────────────────┬──────────────────────────┘\n                   │\n┌──────────────────▼──────────────────────────┐\n│  Platform Adapter Layer                      │\n│  ArduPilot · Betaflight · PX4               │\n│  Parsers → FlightData (unified IR)          │\n└──────────────────┬──────────────────────────┘\n                   │\n┌──────────────────▼──────────────────────────┐\n│  Analysis Engine (platform-aware)            │\n│  PID / FFT / SysID / MagFit / Filter / HW   │\n│  Per-platform modules:                       │\n│    ardupilot/  → WebTools-aligned FFT        │\n│    betaflight/ → Wiener deconvolution FFT    │\n│    px4/        → stubs                       │\n│  BF: Feedforward · RPM Filter · D-term      │\n│  Protocol-based interface constraints        │\n└──────────────────┬──────────────────────────┘\n                   │ AnalysisResult + ParamRef\n┌──────────────────▼──────────────────────────┐\n│  Knowledge Base (6-layer deep merge)         │\n│  common → platform → user → Pro             │\n│  JSON-based rules — inspectable \u0026 editable   │\n└──────────────────┬──────────────────────────┘\n                   │\n┌──────────────────▼──────────────────────────┐\n│  Output Layer                                │\n│  Terminal (Rich) / JSON / Markdown / HTML    │\n│  ParamRef → platform-native parameter names  │\n└─────────────────────────────────────────────┘\n```\n\n---\n\n## Knowledge Base\n\nA 6-layer deep-merge rule engine powers all tuning recommendations. Each layer overrides the previous:\n\n| # | Layer | Location | Editable |\n|---|-------|----------|----------|\n| 1 | Common physics rules | `smarttune/knowledge/rules/common/` | ❌ Built-in |\n| 2 | Platform rules | `smarttune/knowledge/rules/{platform}/` | ❌ Built-in |\n| 3 | User common | `~/.smarttune/knowledge/common/` | ✅ |\n| 4 | User platform | `~/.smarttune/knowledge/{platform}/` | ✅ |\n| 5 | Pro common | `smarttune-knowledge-pro` (optional) | 🔒 |\n| 6 | Pro platform | `smarttune-knowledge-pro` (optional) | 🔒 |\n\nRules are standard JSON files. Add a file, restart the command, and the engine picks it up. No compilation, no database, no setup.\n\n---\n\n## Development\n\n```bash\n# Install with dev dependencies\npip install -e \".[dev,all]\"\n\n# Run tests\npytest tests/ -v                              # 96 tests, 1.5s\npytest tests/test_bbl_parser.py -v            # BBL parser only\npytest tests/test_betaflight_analyzers.py -v  # BF-specific analyzers\n\n# Lint\nruff check smarttune/\nblack --check smarttune/\n```\n\n### Adding a New Platform\n\n1. **Create adapter** — Subclass `PlatformAdapter`, implement `parse()`, `detect()`, `map_param_to_platform()`\n2. **Add knowledge rules** — Drop JSON files in `smarttune/knowledge/rules/{platform}/`\n3. **Register** — Use `@register` decorator\n\n```python\n@register\nclass MyPlatform(PlatformAdapter):\n    name = \"myplatform\"\n    ...\n```\n\n`stune platforms` will auto-discover it.\n\n---\n\n## Agent Stack Integration\n\nSmartTune is designed to work with any LLM agent framework. Here's how it fits:\n\n| Framework | Integration |\n|-----------|-------------|\n| **OpenClaw** | `stune` as an MCP tool — structured JSON output, no config needed |\n| **Claude Code / Codex** | Shell tool call — `stune analyze -i log.bin --format json` |\n| **Hermes Agent** | Deterministic output, safe for agent-in-the-loop tuning workflows |\n| **Custom agents** | pip-installable, importable Python API for advanced use cases |\n\nAgents call `stune`, get structured tuning recommendations, and can act on them. No TUI to navigate, no prompts to answer, no fragile screen-scraping.\n\n---\n\n## Examples\n\n### Terminal Output\n\n```text\nPlatform: Betaflight\n╭──────────────────────────────────────────────────────────────────╮\n│ PID Step Response Analysis                                       │\n╰──────────────────────────────────────────────────────────────────╯\n\n  PITCH: MARGINAL  (steps: 4)\n  ROLL:  MARGINAL  (steps: 1)\n  YAW:   MARGINAL  (steps: 1)\n  Overall: MARGINAL\n\n╭──────────────────────────────────────────────────────────────────╮\n│ FFT Vibration Analysis                                           │\n╰──────────────────────────────────────────────────────────────────╯\n  Vibration: MARGINAL (10.0 m/s²)\n  Freq (Hz)    Amplitude (dB)    Source\n       93.7             -46.5    motor\n    → gyro_notch1_hz: 93.7\n    → gyro_lowpass_hz: 40\n    → acc_lpf_hz: 10\n\n✓ Analysis complete!\n```\n\n### PID Step Response\n\n**ArduPilot** (DataFlash `.bin` log):\n\n![ArduPilot PID step response](assets/pid_ardupilot_example.png)\n\n**Betaflight** (Blackbox `.bbl` log):\n\n![Betaflight PID step response](assets/pid_betaflight_example.png)\n\n### Agent Analysis Report\n\nWhen an AI agent analyzes a flight log through SmartTune, it produces a structured diagnostic report like this:\n\n```text\nArduPilot Flight Log Analysis Report\nLog: 2026-04-26 13-46-44.bin | Duration: 995s | Platform: ArduPilot\n```\n\n#### 1. PID Step Response Analysis\n\n| Axis | Rating | Rise Time | Overshoot | Settling | Oscillations |\n|------|--------|-----------|-----------|----------|-------------|\n| Roll | MARGINAL | -1ms | 0.0% | 510ms | 8 |\n| Pitch | MARGINAL | -1ms | 0.0% | 510ms | 4 |\n| Yaw | MARGINAL | -1ms | -1.0% | -1ms | - |\n\n**Roll Axis Recommendations:**\n\n| Parameter | Current → New | Change | Reason |\n|-----------|---------------|--------|--------|\n| `ATC_RAT_RLL_D` | 0.0036 → 0.0040 | +10% | Reduce oscillation (8 cycles) |\n| `ATC_RAT_RLL_I` | 0.115 → 0.144 | +25% | Eliminate steady-state error (99.8%) |\n| `ATC_RAT_RLL_P` | 0.115 → 0.104 | -10% | Reduce oscillation |\n\n**Pitch Axis Recommendations:**\n\n| Parameter | Current → New | Change | Reason |\n|-----------|---------------|--------|--------|\n| `ATC_RAT_PIT_I` | 0.115 → 0.144 | +25% | Eliminate steady-state error (99.8%) |\n| `ATC_RAT_PIT_D` | 0.0036 → 0.0040 | +10% | Reduce oscillation (4 cycles) |\n| `ATC_RAT_PIT_P` | 0.115 → 0.104 | -10% | Reduce oscillation |\n\n**Yaw Axis:** No changes needed — parameters already acceptable.\n\n#### 2. FFT Vibration Analysis\n\n**Rating:** EXCELLENT (0.5 m/s²)\n\n**Current filter settings:**\n\n| Parameter | Value |\n|-----------|-------|\n| `INS_GYRO_FILTER` | 60 Hz |\n| `INS_ACCEL_FILTER` | 10 Hz |\n| Notch filters | None enabled |\n\n\u003e Vibration levels are excellent. No additional filtering required.\n\n#### 3. Magnetometer Calibration\n\n**Fitness:** 567.98 mGauss — BAD\n\n**Issues detected:**\n\n| Issue | Threshold | Actual |\n|-------|-----------|--------|\n| Hard iron offset (max \\|OFS\\|) | 600 | 625 |\n| Soft iron anomaly (DIA_X/Y/Z) | — | 0.300 |\n| Motor interference (max \\|MOT\\|) | 100.0 | 200.0 |\n| Flight coverage | — | No attitude variation |\n\n**Recommendations:**\n- Remove hard iron interference sources (speakers, magnets)\n- Optimize soft iron layout (battery/motor placement)\n- Recalibrate with proper flight pattern: yaw \u003e 300°, pitch/roll \u003e ±30°\n\n#### Summary\n\n| Module | Status | Action |\n|--------|--------|--------|\n| Vibration | ✅ Excellent | Hardware is solid |\n| PID | ⚠️ Marginal | Increase I and D gains on Roll/Pitch, reduce P slightly |\n| Compass | ❌ Bad | Recalibrate before precision flight |\n\nThe agent interprets SmartTune's structured JSON output, adds context, and produces a human-readable summary — bridging the gap between raw data and actionable tuning advice.\n\n---\n\n## For Humans\n\nYes, the terminal output is also beautiful. Rich-powered tables, progress bars, color-coded diagnostics — everything you'd expect from a modern CLI. But the architecture underneath is agent-first.\n\n```bash\n# Human-friendly terminal output (default)\nstune analyze -i flight.bin\n\n# Same data, machine-parseable\nstune analyze -i flight.bin --format json | jq '.pid.roll.rating'\n```\n\n---\n\n## Roadmap\n\n| Phase | Content | Status |\n|-------|---------|--------|\n| v1.x | ArduPilot full support | ✅ |\n| v2.0 Phase 1 | Multi-platform architecture | ✅ |\n| v2.0 Phase 2 | Betaflight BBL parser + analytics | ✅ |\n| **v2.1** | Platform-specific analyzers + Protocol constraints | ✅ |\n| v2.x | PX4 ULog adapter | 🔲 |\n| v3.0 | Tool-calling manifest, plugin system, web UI | 🔲 |\n\n---\n\n## Author\n\n**Raylan LIN** — [@raylanlin](https://github.com/raylanlin)\n\nBuilt and maintained by a pilot who trusts agents more than checklists.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n\n`smarttune-knowledge-pro` is a separate closed-source tuning knowledge base with proprietary tuning rules and industry experience.\n\nFor commercial collaboration — custom tuning knowledge bases, fleet-level expertise integration, or enterprise tuning rule development — reach out at [raylanlin@gmail.com](mailto:raylanlin@gmail.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraylanlin%2Fsmarttune-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraylanlin%2Fsmarttune-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraylanlin%2Fsmarttune-cli/lists"}