___ _ ___ ____
/ _(_)_ __ / _ \/ ___|
| |_| \ \/ / | | | \___ \
| _| |> < | |_| |___) |
|_| |_/_/\_\ \___/|____/
AI-powered OS Diagnostics
AI diagnostyka i naprawa systemów – Linux, Windows, macOS
z anonimizacją danych, trybem HITL/Autonomous, grafem problemów i 12 providerami LLM.
🔗 GitHub: https://github.com/wronai/fixos
| System | Package Manager | Audio | Hardware | System |
|---|---|---|---|---|
| Linux (Fedora, Ubuntu, Arch, Debian) | dnf / apt / pacman | ✅ ALSA/PipeWire/SOF | ✅ DMI/sensors | ✅ systemd/journal |
| Windows 10/11 | winget / choco | ✅ WMI Audio | ✅ WMI Hardware | ✅ Event Log |
| macOS 12+ | brew | ✅ CoreAudio | ✅ system_profiler | ✅ launchd |
# 1. Instalacja
pip install -e ".[dev]"
# 2. Wybierz provider i pobierz klucz API
fixos llm # lista 12 providerów z linkami
# 3. Zapisz klucz i uruchom
fixos token set AIzaSy... # Gemini (darmowy, domyślny)
fixos fixfixos – ekran powitalny z listą komend i statusem
fixos fix – diagnoza + sesja naprawcza z AI (HITL)
fixos scan – diagnostyka systemu bez AI
fixos orchestrate – zaawansowana orkiestracja (graf problemów DAG)
fixos llm – lista 12 providerów LLM + linki do kluczy API
fixos token set KEY – zapisz klucz API do .env (auto-detekcja providera)
fixos token show – pokaż aktualny token (zamaskowany)
fixos token clear – usuń token z .env
fixos config show – pokaż konfigurację
fixos config init – utwórz .env z szablonu
fixos config set K V – ustaw wartość w .env
fixos providers – skrócona lista providerów
fixos test-llm – testuj połączenie z LLM
# Tylko diagnostyka audio + zapis do pliku
fixos scan --audio --output /tmp/audio-report.json
# Analiza i interaktywne czyszczenie zajętości dysku
fixos fix --disc
# Napraw audio i thumbnails (HITL – pyta o potwierdzenie)
fixos fix --modules audio,thumbnails
# Tryb autonomiczny (agent sam naprawia, max 5 akcji)
fixos fix --mode autonomous --max-fixes 5
# Zaawansowana orkiestracja z grafem zależności
fixos orchestrate --dry-run
# Pokaż tylko darmowe providery LLM
fixos llm --free
# Ustaw Groq jako provider (ultra-szybki, darmowy)
fixos token set gsk_... --provider groq
fixos fix --provider groq
# Timeout 30 minut
fixos fix --timeout 1800Wyjście jest zoptymalizowane pod standardowy Markdown bez nadmiernej ilości symboli Unicode, ułatwiając czytelność i wklejanie:
$ fixos fix --disk --dry-run
___ _ ___ ____
/ _(_)_ __ / _ \/ ___|
| |_| \ \/ / | | | \___|
| _| |> < | |_| |___) |
|_| |_/_/\_\ \___/|____/
AI-powered OS Diagnostics • v2.0.0
Konfiguracja:
Tryb: DRY-RUN (komendy nie będą wykonywane)
Analiza dysku: Włączona
Analizowanie zajętości dysku...
Dysk: 93.9% zajęty (1759.0GB / 1873.7GB)
Można bezpiecznie zwolnić: 0.7GB w 3 akcjach
Diagnostyka gotowa.
Plan czyszczenia dysku:
🔢 Akcje: 8
Miejsce: 262255.3 GB
Bezpieczne: 0.7 GB
📂 Kategorie: 6
Cache Files:
📁 Akcje: 1
Miejsce: 0.6 GB
Clear application cache (0.6GB)
Temporary Files:
📁 Akcje: 1
Miejsce: 0.1 GB
Clean system_temp temporary files (0.1GB)
Rekomendacje:
🎯 Cache Cleanup Recommended
Clear application cache to free 0.6 GB
🎯 Log Files Can Be Cleaned
Clean old logs to free 0.7 GB
Tryb DRY-RUN - żadne akcje nie zostaną wykonane| # | Provider | Tier | Model domyślny | Klucz API |
|---|---|---|---|---|
| 1 | gemini | 🟢 FREE | gemini-2.5-flash | aistudio.google.com |
| 2 | openrouter | 🟢 FREE | openai/gpt-4o-mini | openrouter.ai/settings/keys |
| 3 | mistral | 🟢 FREE | mistral-small-latest | console.mistral.ai |
| 4 | groq | 🟢 FREE | llama-3.1-8b-instant | console.groq.com/keys |
| 5 | together | 🟢 FREE | llama-3.2-11B | api.together.ai |
| 6 | cohere | 🟢 FREE | command-r | dashboard.cohere.com |
| 7 | cerebras | 🟢 FREE | llama3.1-8b | cloud.cerebras.ai |
| 8 | ollama | 🟢 LOCAL | llama3.2 | ollama.com/download |
| 9 | openai | 💰 PAID | gpt-4o-mini | platform.openai.com |
| 10 | anthropic | 💰 PAID | claude-3-haiku | console.anthropic.com |
| 11 | xai | 💰 PAID | grok-beta | console.x.ai |
| 12 | deepseek | 💰 PAID | deepseek-chat | platform.deepseek.com |
fixos llm # pełna lista z opisami i gotowymi komendami
fixos llm --free # tylko darmoweLLM sugeruje → Ty decydujesz → Skrypt wykonuje
fixos [00:58:42] ❯ 1 ← napraw problem nr 1
fixos [00:58:30] ❯ A ← napraw wszystkie
fixos [00:58:20] ❯ !systemctl status pipewire ← własna komenda
fixos [00:58:10] ❯ search sof-firmware lenovo ← szukaj zewnętrznie
fixos [00:57:55] ❯ D ← opisz własny problem
fixos [00:57:40] ❯ ? ← zapytaj o szczegóły
fixos [00:57:30] ❯ q ← zakończ
Wyjście koloryzowane: 🔴 krytyczne / 🟡 ważne / 🟢 drobne, bloki kodu z ramkami box-drawing.
fixos fix --mode autonomous --max-fixes 10- Protokół JSON:
{ "action": "EXEC|SEARCH|SKIP|DONE", "command": "...", "reason": "..." } - Zabezpieczenia: lista zabronionych komend (
rm -rf /,mkfs,fdisk,dd if=...) - Każde
EXEClogowane z wynikiem i oceną LLM - Wymaga jawnego
yesna starcie
fixos orchestrate
fixos orchestrate --dry-run # podgląd bez wykonywania- Buduje graf zależności między problemami
- Po każdej naprawie re-diagnozuje i wykrywa nowe problemy
- LLM ocenia wynik każdej komendy (JSON structured output)
Zawsze pokazywana przed wysłaniem do LLM. Maskowane kategorie:
| Kategoria | Przykład | Zamiennik |
|---|---|---|
| Hostname | moj-laptop |
[HOSTNAME] |
| Username | jan |
[USER] |
| Ścieżki /home | /home/jan/.pyenv/versions/3.12/bin/python |
/home/[USER]/... |
| Adresy IPv4 | 192.168.1.100 |
192.168.XXX.XXX |
| Adresy MAC | aa:bb:cc:dd:ee:ff |
XX:XX:XX:XX:XX:XX |
| Tokeny API | sk-abc123... |
[API_TOKEN_REDACTED] |
| UUID hardware | a1b2c3d4-... |
[UUID-REDACTED] |
| Numery seryjne | SN: PF1234567 |
Serial: [SERIAL-REDACTED] |
| Hasła w env | PASSWORD=secret |
PASSWORD=[REDACTED] |
| Moduł | Linux | Windows | macOS | Co sprawdza |
|---|---|---|---|---|
system |
✅ | ✅ | ✅ | CPU, RAM, dyski, usługi, aktualizacje, SELinux, firewall |
audio |
✅ | ✅ | ✅ | ALSA/PipeWire/SOF (Linux), WMI Audio (Win), CoreAudio (Mac) |
thumbnails |
✅ | ➖ | ➖ | ffmpegthumbnailer, cache, GNOME gsettings |
hardware |
✅ | ✅ | ✅ | DMI/WMI/system_profiler, BIOS, GPU, czujniki, bateria |
security |
✅ | ✅ | ✅ | Firewall, otwarte porty, SELinux/AppArmor, SSH config, fail2ban, SUID |
resources |
✅ | ✅ | ✅ | Co zajmuje dysk, top procesów CPU/RAM, autostart, OOM events |
# Tylko bezpieczeństwo
fixos scan --modules security
# Zasoby – co zajmuje dysk i pamięć
fixos scan --modules resources
# Pełna diagnostyka z naprawą
fixos fix --modules system,security,resourcesGdy LLM nie zna rozwiązania, fixos szuka automatycznie w:
- Fedora Bugzilla – baza zgłoszonych błędów
- ask.fedoraproject.org – forum społeczności
- Arch Wiki – doskonałe źródło dla ogólnych problemów Linux
- GitHub Issues – PipeWire, ALSA, linux-hardware repos
- DuckDuckGo – ogólne wyszukiwanie (bez klucza API)
- Google via SerpAPI – najlepsze wyniki (opcjonalny klucz
SERPAPI_KEY)
fixos config init # utwórz .env z szablonu
fixos config show # sprawdź aktualną konfiguracjęLLM_PROVIDER=gemini # gemini|openai|openrouter|groq|mistral|...
GEMINI_API_KEY=AIzaSy... # klucz Gemini (darmowy)
AGENT_MODE=hitl # hitl|autonomous
SHOW_ANONYMIZED_DATA=true # pokaż dane przed wysłaniem
ENABLE_WEB_SEARCH=true # fallback do zewnętrznych źródeł
SESSION_TIMEOUT=3600 # timeout sesji (1h)
SERPAPI_KEY= # opcjonalny – lepsze wyniki wyszukiwania# Wszystkie testy jednostkowe (bez API, szybkie)
pytest tests/unit/ -v
# Testy e2e z mock LLM
pytest tests/e2e/ -v
# Tylko testy z prawdziwym API (wymaga tokena w .env)
pytest tests/e2e/ -v -m real_api
# Pokrycie kodu
pytest --cov=fixos --cov-report=html
make test-coverage# Zbuduj wszystkie obrazy
docker compose -f docker/docker-compose.yml build
# Scenariusze broken
docker compose -f docker/docker-compose.yml run broken-audio
docker compose -f docker/docker-compose.yml run broken-thumbnails
docker compose -f docker/docker-compose.yml run broken-network
docker compose -f docker/docker-compose.yml run broken-full
# Uruchom testy e2e w Dockerze
docker compose -f docker/docker-compose.yml run e2e-tests| Obraz | Scenariusz |
|---|---|
fixos-broken-audio |
Brak sof-firmware, PipeWire failed, no ALSA cards |
fixos-broken-thumbnails |
Brak thumbnailerów, pusty cache, brak GStreamer |
fixos-broken-network |
NetworkManager failed, DNS broken, rfkill blocked |
fixos-broken-full |
Wszystkie problemy naraz + pending updates + failed services |
fixos/
├── fixos/
│ ├── cli.py # Komendy CLI (Click) – fixos, fix, scan, llm, ...
│ ├── config.py # Konfiguracja + 12 providerów LLM
│ ├── platform_utils.py # Cross-platform (Linux/Win/Mac)
│ ├── agent/
│ │ ├── hitl.py # HITL z koloryzowanym markdown output
│ │ └── autonomous.py # Tryb autonomiczny z JSON protokołem
│ ├── diagnostics/
│ │ └── system_checks.py # Moduły: system, audio, thumbnails, hardware
│ ├── fixes/
│ │ ├── knowledge_base.py # Baza znanych bugów z heurystykami
│ │ └── heuristics.py # Matcher diagnostics → known fixes
│ ├── orchestrator/
│ │ ├── graph.py # Graf problemów (DAG)
│ │ ├── executor.py # Bezpieczny executor komend
│ │ └── orchestrator.py # Główna pętla orkiestracji
│ ├── providers/
│ │ └── llm.py # Multi-provider LLM client
│ └── utils/
│ ├── anonymizer.py # Anonimizacja z raportem
│ └── web_search.py # Bugzilla/AskFedora/ArchWiki/GitHub/DDG
├── tests/
│ ├── conftest.py # Fixtures + mock diagnostics
│ ├── e2e/
│ │ ├── test_audio_broken.py
│ │ ├── test_thumbnails_broken.py
│ │ ├── test_network_broken.py
│ │ ├── test_executor.py
│ │ └── test_cli.py
│ └── unit/
│ ├── test_core.py
│ ├── test_anonymizer.py
│ └── test_executor.py
├── docker/
│ ├── base/Dockerfile
│ ├── broken-audio/Dockerfile
│ ├── broken-thumbnails/Dockerfile
│ ├── broken-network/Dockerfile
│ └── broken-full/Dockerfile
├── .env.example
├── pytest.ini
└── pyproject.toml
Zobacz pełną listę zadań i roadmap w pliku TODO.md
pip install -e ".[dev]"# Utwórz plik .env z szablonu
fixos config init
# Ustaw klucz API (darmowy Gemini)
fixos token set AIzaSy...
# Lub wybierz innego providera
fixos llm --free # pokaż darmowe providery# Zobacz dostępne komendy
fixos
# Diagnostyka systemu (bez AI)
fixos scan
# Naprawa z AI (pyta o potwierdzenie)
fixos fix
# Naprawa automatyczna (bez pytania)
fixos fix --mode autonomous --max-fixes 5# Tylko audio
fixos fix --modules audio
# Zapisz wynik do pliku
fixos scan --output raport.json
# Timeout 30 minut
fixos fix --timeout 1800
# Podgląd orkiestracji
fixos orchestrate --dry-run- GitHub: https://github.com/wronai/fixos
- Pełna dokumentacja: TODO.md
Apache License 2.0 – see LICENSE for details.
Apache License 2.0 - see LICENSE for details.
Created by Tom Sapletta - tom@sapletta.com