Metadata-Version: 2.4
Name: feral-ai
Version: 2026.5.16
Summary: FERAL — Open-source AI agent with computer use, GenUI, voice, hardware control, and persistent memory.
Author: Mahmoud Omar
Author-email: Alpay Kasal <info@feral.io>
License: Apache-2.0
Project-URL: Homepage, https://github.com/FERAL-AI/FERAL-AI
Project-URL: Issues, https://github.com/FERAL-AI/FERAL-AI/issues
Keywords: agent,ai,genui,voice,hardware,mcp,computer-use
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: fastapi>=0.115.0
Requires-Dist: uvicorn[standard]>=0.30.0
Requires-Dist: pydantic>=2.9.0
Requires-Dist: websockets>=13.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: duckduckgo-search>=6.0.0
Requires-Dist: html2text>=2024.2.26
Requires-Dist: pymupdf
Requires-Dist: numpy>=1.24.0
Requires-Dist: Pillow>=10.0.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: openai>=1.50.0
Requires-Dist: PyJWT>=2.8.0
Requires-Dist: prometheus-client>=0.20
Requires-Dist: cryptography>=41.0.0
Requires-Dist: pynacl>=1.5.0
Requires-Dist: keyring>=25.0
Requires-Dist: argon2-cffi>=23.1
Provides-Extra: llm
Requires-Dist: openai>=1.50.0; extra == "llm"
Requires-Dist: exa-py>=1.0.0; extra == "llm"
Requires-Dist: numpy>=1.24.0; extra == "llm"
Requires-Dist: Pillow>=10.0.0; extra == "llm"
Requires-Dist: aiohttp>=3.9.0; extra == "llm"
Provides-Extra: vec
Requires-Dist: sqlite-vec>=0.1.1; extra == "vec"
Provides-Extra: memory-chroma
Requires-Dist: chromadb>=0.5.0; extra == "memory-chroma"
Provides-Extra: memory-qdrant
Requires-Dist: qdrant-client>=1.11.0; extra == "memory-qdrant"
Provides-Extra: groq
Requires-Dist: openai>=1.50.0; extra == "groq"
Provides-Extra: local
Requires-Dist: llama-cpp-python>=0.3.0; extra == "local"
Provides-Extra: wasm
Requires-Dist: wasmtime>=22.0.0; extra == "wasm"
Provides-Extra: sync
Requires-Dist: zeroconf>=0.131.0; extra == "sync"
Provides-Extra: discovery
Requires-Dist: zeroconf>=0.131.0; extra == "discovery"
Requires-Dist: qrcode[pil]>=7.4; extra == "discovery"
Provides-Extra: stt
Requires-Dist: faster-whisper>=1.0.0; extra == "stt"
Provides-Extra: tts
Requires-Dist: piper-tts>=1.2.0; extra == "tts"
Provides-Extra: wake
Requires-Dist: openwakeword>=0.6.0; extra == "wake"
Requires-Dist: onnxruntime>=1.16.0; extra == "wake"
Provides-Extra: desktop
Requires-Dist: pyautogui>=0.9.54; extra == "desktop"
Provides-Extra: browser
Requires-Dist: playwright>=1.40.0; extra == "browser"
Provides-Extra: mqtt
Requires-Dist: aiomqtt>=2.0.0; extra == "mqtt"
Provides-Extra: observability
Requires-Dist: opentelemetry-sdk>=1.20; extra == "observability"
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.20; extra == "observability"
Requires-Dist: prometheus-client>=0.20; extra == "observability"
Provides-Extra: together
Requires-Dist: openai>=1.50.0; extra == "together"
Provides-Extra: openrouter
Requires-Dist: openai>=1.50.0; extra == "openrouter"
Provides-Extra: fireworks
Requires-Dist: openai>=1.50.0; extra == "fireworks"
Provides-Extra: bedrock
Requires-Dist: boto3>=1.34.0; extra == "bedrock"
Provides-Extra: channel-matrix
Requires-Dist: matrix-nio>=0.24.0; extra == "channel-matrix"
Provides-Extra: channel-signal
Provides-Extra: channel-voice-call
Requires-Dist: twilio>=9.0.0; extra == "channel-voice-call"
Provides-Extra: channel-feishu
Requires-Dist: lark-oapi>=1.4.0; extra == "channel-feishu"
Provides-Extra: channel-zalo
Provides-Extra: all
Requires-Dist: openai>=1.50.0; extra == "all"
Requires-Dist: exa-py>=1.0.0; extra == "all"
Requires-Dist: numpy>=1.24.0; extra == "all"
Requires-Dist: pyautogui>=0.9.54; extra == "all"
Requires-Dist: Pillow>=10.0.0; extra == "all"
Requires-Dist: aiohttp>=3.9.0; extra == "all"
Requires-Dist: playwright>=1.40.0; extra == "all"
Requires-Dist: wasmtime>=22.0.0; extra == "all"
Requires-Dist: zeroconf>=0.131.0; extra == "all"
Requires-Dist: qrcode[pil]>=7.4; extra == "all"
Requires-Dist: onnxruntime>=1.16.0; extra == "all"
Requires-Dist: rich>=13.0.0; extra == "all"
Requires-Dist: faster-whisper>=1.0.0; extra == "all"
Requires-Dist: piper-tts>=1.2.0; extra == "all"
Requires-Dist: aiomqtt>=2.0.0; extra == "all"
Requires-Dist: opentelemetry-sdk>=1.20; extra == "all"
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.20; extra == "all"
Requires-Dist: prometheus-client>=0.20; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Requires-Dist: freezegun>=1.4.0; extra == "dev"
Provides-Extra: demo
Requires-Dist: feral-demo-data>=0.1.0; extra == "demo"

# FERAL Core (`feral-ai`)

FERAL Core is the Python runtime ("brain") for FERAL.

It provides:

- FastAPI + WebSocket orchestration runtime
- Tool, memory, and routing services
- Pairing + device access APIs
- Bundled `webui_v2` static client assets for dashboard startup

## Install

```bash
pip install "feral-ai[all]"
```

## Start

```bash
feral setup
feral start
```

Then open `http://localhost:9090`.

## Docs

- Main repo README: `../README.md`
- Mintlify docs: `../docs/mintlify`
