Metadata-Version: 2.4
Name: ciris-agent
Version: 2.9.4
Summary: CIRIS: Ethical AI Agent with Consensual Evolution Protocol
Home-page: https://github.com/CIRISAI/CIRISAgent
Author: Eric Moore
Author-email: eric@ciris.ai
Project-URL: Bug Reports, https://github.com/CIRISAI/CIRISAgent/issues
Project-URL: Source, https://github.com/CIRISAI/CIRISAgent
Project-URL: Documentation, https://github.com/CIRISAI/CIRISAgent/tree/main/docs
Keywords: ai agent ethical-ai autonomous-agent discord-bot api-server
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: pydantic<3.0.0,>=2.7.0
Requires-Dist: openai<2.0.0,>=1.0.0
Requires-Dist: anthropic<1.0.0,>=0.40.0
Requires-Dist: google-generativeai<1.0.0,>=0.8.0
Requires-Dist: google-genai<2.0.0,>=1.0.0
Requires-Dist: jsonref<2.0.0,>=1.0.0
Requires-Dist: instructor<2.0.0,>=1.11.3
Requires-Dist: PyYAML<7.0.0,>=6.0.1
Requires-Dist: SQLAlchemy<3.0.0,>=2.0.0
Requires-Dist: aiohttp<4.0.0,>=3.9.0
Requires-Dist: httpx<1.0.0,>=0.25.0
Requires-Dist: anyio<5.0.0,>=4.0.0
Requires-Dist: discord.py<3.0.0,>=2.3.0
Requires-Dist: pypdf<7.0.0,>=6.0.0
Requires-Dist: docx2txt<1.0.0,>=0.8
Requires-Dist: cryptography<47.0.0,>=41.0.0
Requires-Dist: pycryptodome<4.0.0,>=3.20.0
Requires-Dist: PyJWT[crypto]<3.0.0,>=2.8.0
Requires-Dist: bcrypt<5.0.0,>=4.0.0
Requires-Dist: PyNaCl<2.0.0,>=1.5.0
Requires-Dist: ciris-persist<4.0.0,>=3.8.0
Requires-Dist: ciris-edge<2.0.0,>=1.1.5
Requires-Dist: ciris-verify<5.0.0,>=4.7.1
Requires-Dist: fastapi<1.0.0,>=0.111.0
Requires-Dist: uvicorn[standard]<1.0.0,>=0.29.0
Requires-Dist: websockets>=14.0
Requires-Dist: python-multipart<1.0.0,>=0.0.6
Requires-Dist: aiofiles<24.0.0,>=23.2.0
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
Requires-Dist: networkx<4.0,>=3.0
Requires-Dist: psutil<6.0.0,>=5.9.0
Requires-Dist: croniter<3.0.0,>=2.0.0
Requires-Dist: backoff<3.0.0,>=2.2.0
Requires-Dist: zeroconf<1.0.0,>=0.39.0
Requires-Dist: click<9.0.0,>=8.1.0
Requires-Dist: docker<8.0.0,>=6.0.0
Provides-Extra: dev
Requires-Dist: pytest<10.0.0,>=9.0.3; extra == "dev"
Requires-Dist: pytest-asyncio<2.0.0,>=1.0.0; extra == "dev"
Requires-Dist: pytest-cov<5.0.0,>=4.1.0; extra == "dev"
Requires-Dist: pytest-timeout<3.0.0,>=2.2.0; extra == "dev"
Requires-Dist: pytest-xdist<4.0.0,>=3.3.0; extra == "dev"
Requires-Dist: pytest-rerunfailures<17.0.0,>=16.1; extra == "dev"
Requires-Dist: pytest-mock<4.0.0,>=3.12.0; extra == "dev"
Requires-Dist: hypothesis<7.0.0,>=6.0.0; extra == "dev"
Requires-Dist: mypy<2.0.0,>=1.8.0; extra == "dev"
Requires-Dist: types-psutil<6.0.0,>=5.9.0; extra == "dev"
Requires-Dist: types-PyYAML<7.0.0,>=6.0.0; extra == "dev"
Requires-Dist: types-aiofiles<24.0.0,>=23.0.0; extra == "dev"
Requires-Dist: instructor<2.0.0,>=1.11.3; extra == "dev"
Requires-Dist: astunparse<2.0.0,>=1.6.3; extra == "dev"
Requires-Dist: websocket-client<2.0.0,>=1.6.0; extra == "dev"
Requires-Dist: psycopg2-binary<3.0.0,>=2.9.0; extra == "dev"
Requires-Dist: zeroconf<1.0.0,>=0.39.0; extra == "dev"
Requires-Dist: pytest-split>=0.8.0; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

<div align="center">

[![License](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)
[![Status](https://img.shields.io/badge/Status-STABLE-green.svg)](CHANGELOG.md)
[![DeepWiki](https://img.shields.io/badge/DeepWiki-CIRIS_Codebase-blue?logo=readthedocs)](https://deepwiki.com/CIRISAI/CIRISAgent)
[![CIRIS Architecture](https://img.shields.io/badge/Paper-CIRIS_Architecture-orange?logo=arxiv)](https://doi.org/10.5281/zenodo.18137161)
[![Coherence Ratchet](https://img.shields.io/badge/Paper-Coherence_Ratchet-orange?logo=arxiv)](https://doi.org/10.5281/zenodo.18142668)
[![Accord](https://img.shields.io/badge/Ethical_Framework-The_Accord-purple)](https://ciris.ai/ciris_accord.pdf)

# CIRIS

### A safer, more ethical AI assistant — one you can actually check.

[![Download on the App Store](https://img.shields.io/badge/Download-App%20Store-0D96F6?style=for-the-badge&logo=apple&logoColor=white)](https://apps.apple.com/us/app/cirisagent/id6758524415)
&nbsp;&nbsp;
[![Get it on Google Play](https://img.shields.io/badge/Get%20it%20on-Google%20Play-48B563?style=for-the-badge&logo=googleplay&logoColor=white)](https://play.google.com/store/apps/details?id=ai.ciris.mobile)

</div>

CIRIS replaces apps like ChatGPT and Grok everywhere you need AI. It's the
same chat you already expect — but it shows its reasoning, escalates to a
human when it's unsure, keeps your data private, works in 29 languages, and
runs on your own device. Open source, free, no ads, no growth-at-all-costs
pressure.

**Desktop & self-host:** `pip install ciris-agent` — see [Run it yourself](#run-it-yourself).
Sign in with Google for the free hosted CIRIS model, or bring your own key
(OpenAI, Anthropic, Groq, Together.ai, or a local model).

## Why CIRIS

- **It shows its work.** Every answer passes ethical, common-sense, domain,
  and reasoning-fragility checks — and you can see *why* it said yes or no,
  not just the answer.
- **It defers to you.** When a decision is uncertain, CIRIS escalates to a
  designated human ("Wise Authority") instead of guessing.
- **Private by design.** Runs on your device. The hosted CIRIS proxy stores
  nothing — your prompts are not logged and never train a model.
- **Speaks your language.** The *entire* ethical-reasoning system — not just
  the buttons — operates in 29 languages.
- **Auditable and open.** AGPL-3.0, cryptographically signed decisions, a
  tamper-evident audit trail, and a public ethical framework anyone can
  review: [the Accord](https://ciris.ai/ciris_accord.pdf).

*Not a replacement for humans — a tool that knows its limits.*

## How it works

CIRIS wraps every AI response in a reasoning pipeline: multiple evaluation
passes for ethics, common sense, domain knowledge, and reasoning fragility
(it flags answers that lean on a single weak source). Uncertain calls defer
to designated humans. Every decision is written to a hash-chained audit
trail. Today CIRIS powers Discord community moderation in production at
[agents.ciris.ai](https://agents.ciris.ai); the architecture is built to
scale to settings like education and healthcare.

The design is described in two papers — [CIRIS
Architecture](https://doi.org/10.5281/zenodo.18137161) and the [Coherence
Ratchet](https://doi.org/10.5281/zenodo.18142668).

## Run it yourself

```bash
pip install ciris-agent
ciris-agent                       # desktop app + local API server
ciris-agent --adapter discord     # or run it as a Discord bot
```

One-line server install (agent + web UI): `curl -sSL https://ciris.ai/install.sh | bash`

## For developers

Under the consumer app, CIRIS is a type-safe, auditable AI agent framework —
22 core services on a 6-bus message architecture, 200+ API endpoints, 4 GB
RAM target, 10,000+ tests. Extend it with adapters, run it headless, or
embed it.

- **[Documentation Hub](docs/README.md)** — everything, organized
- **[Architecture](docs/ARCHITECTURE.md)** · **[API Reference](docs/API_SPEC.md)** · **[Quick Start](docs/QUICKSTART.md)**
- **[Contributing](CONTRIBUTING.md)** · **[Security](SECURITY.md)** · **[For AI assistants](llms.txt)**

## Honest read

CIRIS is real and running in production, but young — version 2.x, under
active development. It proves an AI is *accountable*, not that it is
*correct*: the reasoning is made visible so you can judge it yourself. It
does not give medical advice or substitute for professional care. It is not
magic — it is an ordinary chat assistant, plus the accountability machinery
that closed apps don't give you.

---

**CIRIS** — Core Identity, Integrity, Resilience, Incompleteness, and Signalling Gratitude
Copyright © 2025 Eric Moore and CIRIS L3C · AGPL-3.0 · [Release Notes](CHANGELOG.md) · [Issues](https://github.com/CIRISAI/CIRISAgent/issues)
