Praveenkumar101508/supracloud-ira
GitHub: Praveenkumar101508/supracloud-ira
一款本地优先的个人 AI 助手系统,将聊天、语音、记忆、研究与受控操作整合在用户自有硬件上,实现完全私有可控的智能体验。
Stars: 3 | Forks: 0
[](https://github.com/Praveenkumar101508) [](#) [](#) [](#) [](#) [](#license) ### Your AI. Your hardware. Your rules. **Forever.** IRA is a local-first personal intelligence system: an everyday assistant, a governed LifeOS for memory and action, an evidence-driven engineering environment, and an experimental cognitive kernel. It routes work to local models, keeps owner data on your machine by default, and requires explicit approval before sensitive or outbound actions. Cloud providers are optional, never a runtime requirement.









- **Reasoning** — local Ollama, model-routed per task
(`local_fast`/`local_main`/`local_reasoning`/`local_coding`/`local_vision`) behind the **Cortex**
out-of-process engine; reasoning-only skills run with the toolset disabled
- **Memory** — PostgreSQL + pgvector (HNSW), local embeddings + reranker, per-owner isolation
- **Voice** — Whisper STT, OmniVoice / Supertonic / Kokoro TTS, ECAPA voiceprint gate, owner-gated
wake word, Indic language support
- **Actions** — local-first IMAP email triage, CalDAV calendar, on-disk notes — all
simulation-, approval- and evidence-gated
- **LifeOS** — temporal PostgreSQL records, privacy envelopes, commitments/events, Shadow World,
Trust Ledger and Proof Cards
- **Engineering** — Forge worktrees, code intelligence, verification/evidence factory, CLI,
evaluation and release packaging
- **Cognition** — deterministic local transition model, bounded workspace and calibration ledger;
planning-only and OFF by default
- **Frontend** — Next.js 15.5 PWA (installable on phone or desktop) + an optional Expo mobile
companion
- **Quality** — latest merged evidence: 1,395 passing backend tests, 11 environment-gated skips,
9 passing frontend unit tests and a successful strict Next.js 15.5.20 production build, plus
adversarial injection, owner-gate, model-routing, Forge and NeuroKernel suites
## Quick start
# 1. clone
git clone https://github.com/Praveenkumar101508/supracloud-ira.git
cd supracloud-ira/supracloud-jarvis
# 2. configure (copy the template, fill in your values — nothing here phones home)
cp .env.example .env
# 3a. native (recommended on your own box) — Windows
./start-ira.ps1
# 3b. native — Linux / macOS / WSL2
./start-ira.sh # and ./stop-ira.sh to shut down
# 3c. or containerised, for a scale-out box
docker compose -f docker-compose.cloud.yml up -d
Then open the app, enrol your voice + TOTP, and say hello. Full setup notes — including the
PostgreSQL/pgvector, Redis, Python, and Node prerequisites — live in
[`LOCAL_SETUP.md`](supracloud-jarvis/LOCAL_SETUP.md) and
[`TAILSCALE_SETUP.md`](supracloud-jarvis/TAILSCALE_SETUP.md). Setup today is a scripted multi-step
process (prereqs → `.env` → Python venv → `npm install`), not a single command — the setup scripts
above automate most of it.
### Recommended Ollama pulls
`balanced_local` (default) / `strong_local`:
ollama pull qwen3:8b
ollama pull qwen3:14b
ollama pull deepseek-r1:14b # or deepseek-r1:32b for strong_local
ollama pull qwen3-coder-next
ollama pull gemma3:12b
ollama pull bge-m3
ollama pull gemma3n:e4b
`low_resource` (weaker machines):
ollama pull qwen3:4b
ollama pull deepseek-r1:8b
ollama pull qwen3-coder-next
ollama pull gemma3:4b
ollama pull nomic-embed-text
ollama pull gemma3n:e4b
You don't have to pull everything up front — if a preferred model is missing, IRA falls back to the
next available local model automatically.
### Environment configuration
Model-routing and consent settings are documented separately in
[`ira/config/model_selection.env.example`](supracloud-jarvis/ira/config/model_selection.env.example);
copy the ones you want into your `.env`:
IRA_MODEL_PROFILE=balanced_local
IRA_USE_MODEL_ROUTER=true
IRA_ALLOW_EXTERNAL_API=false
IRA_REQUIRE_API_CONSENT=true
IRA_PRIVACY_MODE=local_first
IRA_LOCAL_FAST_MODEL=qwen3:8b
IRA_LOCAL_MAIN_MODEL=qwen3:14b
IRA_LOCAL_REASONING_MODEL=deepseek-r1:14b
IRA_LOCAL_CODING_MODEL=qwen3-coder-next
IRA_LOCAL_VISION_MODEL=gemma3:12b
IRA_EMBEDDING_MODEL=bge-m3
IRA_FALLBACK_TINY_MODEL=gemma3n:e4b
All of the above are optional — with none set, IRA runs `balanced_local` and never uses an external
API.
The experimental control planes have independent, OFF-by-default switches. Enable only what you are
actively evaluating; persistence, neural plasticity and Android/AOSP registration should remain
disabled until their separate gates are satisfied:
IRA_FORGE_ENABLED=false
IRA_BRAIN_ENABLED=false
IRA_NEUROKERNEL_ENABLED=false
IRA_NEUROKERNEL_PERSISTENCE_ENABLED=false
IRA_NEUROKERNEL_PLASTICITY_ENABLED=false
IRA_NEUROKERNEL_ANDROID_ENABLED=false
### Testing
Backend, from `supracloud-jarvis/ira/`:
# Windows
../.venv/Scripts/python.exe -m pytest -q
# Linux / macOS / WSL
../.venv/bin/python -m pytest -q
Frontend, from `supracloud-jarvis/frontend/`:
npm test
npm run build
The latest merged feature verification recorded **1,395 passed, 11 skipped** for the backend,
**9 passed** for the frontend, and a successful strict Next.js 15.5.20 production build. Those are
historical results from the actual run documented in
[`PR-80-cognitive-loop-calibration.md`](docs/prs/PR-80-cognitive-loop-calibration.md), not a promise
about an untested machine. Install backend test dependencies from
[`ira/requirements-test.txt`](supracloud-jarvis/ira/requirements-test.txt).
## Daily use (Personal v1)
The current milestone is **IRA Personal v1** — IRA fully usable by the owner every day, before
any public release. Feature-by-feature honesty lives in [`STATUS.md`](STATUS.md).
**Start IRA**
cd supracloud-jarvis
./start-ira.sh # Linux/macOS/WSL — checks Python/Node/Ollama/Postgres/Redis/.env,
# then starts the API and UI, opens the dashboard,
# and prints "ALL UP. IRA is ready, boss."
./start-ira.ps1 # Windows native (same checks, same order)
One-click launchers (Beta) wrap the same scripts for double-click daily use:
**`Start IRA.bat`** on Windows and **`Start IRA.command`** on macOS (both in
`supracloud-jarvis/`). They run the full dependency checks, start the backend and
frontend, open the dashboard in your browser, and keep the window open so you can
read the summary. No secrets live in the launchers — configuration stays in `.env`.
**First run** — the first successful login opens a one-time setup wizard: create your
owner profile (you are the Owner Admin), choose how IRA should address you
(*Sir / Boss / your name / custom*), confirm local-only privacy, run a live system
check (backend, Ollama, Postgres, Redis), and optionally set up voice and the wake
word (default `ira`). Setup is marked complete only at the final step — if you close
it midway, it reruns next time. Afterwards the dashboard greets you with
*“Welcome back, boss.”* (or whatever title you picked). Rerun it any time from
Owner Profile → *Run setup again*, or `POST /api/v1/onboarding/reset`.
**Chat** — open `http://localhost:3000`, log in with your admin username + password
(+ TOTP if enrolled), and talk in the main chat. Each reply shows which agent and model
handled it.
**Workspace panels** — the sidebar's Workspace section switches between the Personal v1
views (chat is never lost when you switch away):
- **Dashboard** — system readiness from `/health` (Postgres, Redis, model tiers), the
current privacy posture, and quick actions into every other panel.
- **Memory Vault** — list, search and filter your curated memories; save new ones with a
category (`profile`, `projects`, `job_search`, `goals`, ...), edit, pin/unpin. *Forget*
is always two-step: the backend returns a confirmation preview and only confirming that
exact draft deletes. Memories are reference-only data for IRA — never instructions.
- **Trust Console** — renders `GET /api/v1/trust/status` verbatim: privacy mode,
external-API switch, model/DB locality, voice enrollment, pending approvals, last login
and live security warnings. The green shield appears only when the backend itself
reports `local_only`.
- **Voice Setup** — enrolment status plus a guided in-browser enrolment: read 5 phrases
(the first is a one-time anti-replay challenge), clips are converted to 16 kHz WAV in
memory and uploaded once; only embeddings are stored. Also hosts **Wake Mode v1**
(Beta): an on/off toggle with an always-visible mic state
(*off / listening / awake / processing*). Wake Mode is OFF by default, detection is
local-only, only the enrolled owner's voice can wake IRA, raw audio never touches
disk, and the toggle cannot change privacy or external-API settings.
- **Owner Profile** — your name, preferred address ("boss", "sir", your name, or
custom — IRA uses it naturally, not in every sentence), wake word, and voice flag.
The role is fixed to Owner Admin: full access to every feature, but destructive and
outbound actions still ask for confirmation first — that rule applies to everyone,
including the owner.
- **People & Relationships** (in the Memory Vault, Beta) — tell IRA who people are
("Rahul is my friend", "remember Anitha is my wife"); IRA confirms before saving and
stores it as reference data with **no system access**. Granting access is a separate
security event: the wizard needs the role choice (Viewer / Trusted User / Family
Admin / Owner Equivalent), the person's **own** new username and password, **your
owner password** (never bypassed, not even in dev mode), and a final confirmation.
Voice can ask, but can never complete an access change. Delegated logins are
default-denied everywhere except chat and basic voice, nobody can remove or replace
the primary owner, and every access change lands in an audit log.
- **Command Center** (Beta) — say what you want and IRA plans it, asks only when the
risk requires it, then does the work and reports back. Each command becomes a visible
plan (intent, steps, risk level). Low-risk reversible commands ("save a memory",
"open memory vault", "check if my app is running") run immediately; medium-risk ones
("create a project", "create a private database for project Aurora") show the exact
plan and run only after you approve it; high-risk ones need your owner password. Say
"create a private database for project Aurora" and IRA creates a local-only Postgres
database with its own user, writes the credentials to a `chmod 600` file under the
local secrets dir (never logged, never committed), and records the project in the
Memory Vault. Access grants, deletions, outbound actions and security changes can
never run from a plain command — they route to their own confirmation-gated flows,
and unrecognised commands get a clarifying question instead of a guessed action.
- **Today** — a fail-soft daily operating view over live commitments, events, and trust state. One
unavailable subsystem does not hide the sections that are still healthy.
- **Life Map** — a dependency-free interactive graph of your people, projects, goals, and
commitments. Select a node for details; graph and relationship stores remain independently
fail-soft.
- **Action Studio** — a safe action control plane showing configured capabilities, pending
approvals, enforced execution policy, Proof Cards, and recent Trust Ledger evidence. The first
email action is always a simulation; the second owner-confirmed step is the only execution path.
- **Trust Ledger** — recent hash-chained action evidence with verification status sourced from the
backend rather than a decorative success badge.
- **NeuroConsole** (Experimental) — when NeuroKernel is enabled, inspect focus, workspace
competition, goals, drives, alternative futures, prediction outcomes, calibration and cognitive
immune quarantines. Manual sleep is available, but the panel cannot execute a plan or silently
activate plasticity.
- **Agent activity** — lives in the right rail during chat: per-run agent cards plus a
"Last run" readout of what the backend actually reported (agent, model, memories used,
approval requirement). Anything unreported shows "Not reported yet".
**Voice** — the browser voice loop is on by default (`NEXT_PUBLIC_VOICE_TRANSPORT=browser`).
Speak after the wake word (`hey ira`) or use push-to-talk; replies are spoken via the local
Supertonic engine. Voice enrolment is easiest from the Voice Setup panel (or via
`GET /api/v1/voice/challenge` + `POST /api/v1/voice/enroll`) — only the embedding is
stored, raw audio is never kept. Voice is optional: password login always works, so you
cannot lock yourself out.
**Shut down**
./stop-ira.sh # stops the API + UI (+ Ollama only if the script started it)
**Troubleshooting**
- `start-ira.sh` prints a `[FAIL]` line per missing dependency with the fix inline.
- Backend logs: `.ira-run/ira-api.log`; frontend logs: `.ira-run/frontend.log`.
- API self-diagnosis: `GET /health` (liveness) and `GET /health/detail` (per-pillar).
- If voice replies 503, Supertonic isn't installed — chat keeps working (`pip install supertonic`).
## Project layout
supracloud-jarvis/
├─ ira/
│ ├─ agents/ # the specialist agents + the LangGraph
│ ├─ api/ # FastAPI routes + auth middleware
│ ├─ actions/ # local email / calendar / notes behind governed execution
│ ├─ coding/ # Forge tasks, code intelligence, worktrees, verification, eval, release
│ ├─ cognition/ # NeuroKernel workspace, models, cycles, calibration, immune layer
│ ├─ lifeos/ # temporal memory, privacy, commitments, Shadow World
│ ├─ trust/ # hash-chained ledger and Proof Cards
│ ├─ research/ # deep web-research engine (sanitised, egress-guarded)
│ ├─ reasoning/ # model router, profiles, consent gate, answer-quality layer
│ ├─ memory/ # pgvector store, embeddings, reranker
│ ├─ voice/ # STT, TTS, voiceprint gate, wake word, languages
│ ├─ worker/ # briefings, monitors, self-heal, backup
│ ├─ utils/ # safety (net_safety, cmd_safety), security, playbooks, tools
│ ├─ skills/ # per-agent prompts (SKILL.md)
│ ├─ subagents/ # Expert-Mode deliberation team
│ ├─ config/ # model_profiles.yaml, model_system_prompts.yaml, env examples
│ ├─ scripts/ # CI guards (e.g. AST no-push check)
│ └─ cortex_bridge.py # local reasoning gateway
├─ frontend/ # Next.js 15.5 / React 19 PWA
├─ mobile/ # optional Expo companion app (off by default)
├─ postgres/ # schema migrations
├─ third_party/ # vendored deps + upstream LICENSE/NOTICE
└─ docs/ # ops + incident runbooks
## Documentation
- [`ARCHITECTURE.md`](ARCHITECTURE.md) — components, data flow, local-first model, extension points
- [`SECURITY.md`](SECURITY.md) — threat model, auth, secrets policy, how to report issues
- [`CONTRIBUTING.md`](CONTRIBUTING.md) — setup, branch workflow, test expectations
- [`CITATION.cff`](CITATION.cff) — citation metadata
- [`docs/architecture/IRA_MASTER_PLAN.md`](docs/architecture/IRA_MASTER_PLAN.md) — staged roadmap,
governance gates and architecture invariants
- [`docs/architecture/ARCHITECTURE_CONSTITUTION.md`](docs/architecture/ARCHITECTURE_CONSTITUTION.md)
— binding safety, evidence and owner-authority rules
- [`docs/neuroos/NEUROKERNEL.md`](docs/neuroos/NEUROKERNEL.md) — cognition model, safety boundary,
calibration and Android capability ABI
- [`docs/prs/`](docs/prs/) — implementation records for Forge, LifeOS, Trust Ledger, owner surfaces,
NeuroKernel and the closed cognitive loop
- [`docs/progress/SESSION_HANDOFF.md`](docs/progress/SESSION_HANDOFF.md) — exact current branch, test
evidence and resume point
- [`docs/audits/CURRENT_REPOSITORY_AUDIT.md`](docs/audits/CURRENT_REPOSITORY_AUDIT.md) — current
repository audit and risk register
- [`ira/docs/MODEL_SELECTION.md`](supracloud-jarvis/ira/docs/MODEL_SELECTION.md) — model roles,
profiles, fallback chains, consent behaviour
- [`docs/MODEL_ROUTING_VERIFICATION_REPORT.md`](docs/MODEL_ROUTING_VERIFICATION_REPORT.md) —
independent audit of the router + consent gate
- [`ira/docs/ANSWER_QUALITY_SYSTEM.md`](supracloud-jarvis/ira/docs/ANSWER_QUALITY_SYSTEM.md) —
system prompts, answer policies, verifier, memory context design
- [`docs/ANSWER_QUALITY_IMPLEMENTATION_REPORT.md`](docs/ANSWER_QUALITY_IMPLEMENTATION_REPORT.md) —
implementation report and test results
## Roadmap
- [x] Multi-agent core, voice, memory, proactive workers
- [x] Full defense-in-depth security layer + live monitoring
- [x] Local-first actions (email · calendar · notes) + optional mobile companion
- [x] Tool-layer owner authorization + self-modification guardrails
- [x] Local-first model routing + consent-gated Deep Intelligence Mode
- [x] Answer-quality layer (tier prompts, task policies, verifier, memory context)
- [x] Temporal/provenance memory, privacy envelopes, commitments, contradiction resolution
- [x] Shadow World governed execution, append-only Trust Ledger, Proof Cards and wired side effects
- [x] Today, Life Map, Action Studio, Trust Ledger, and Memory Guardian owner surfaces
- [x] Forge task lifecycle, code intelligence, specialist orchestration and Verification Factory
- [x] 100-task IRA-Forge-Eval, engineering outcomes and proof-carrying delivery evidence
- [x] Installable `ira` CLI + SBOM, provenance, checksum and owner-key tag-signing workflow
- [x] NeuroKernel foundation, NeuroConsole, multi-future cycles, outcome ledger and calibration metrics
- [ ] Wire answer-verifier findings into live telemetry (log-only first)
- [ ] Recency-aware memory ranking using `created_at`
- [ ] Bring the answer-quality layer into the Cortex path once Cortex is primary
- [ ] Evaluate NeuroKernel on real owner outcomes before enabling persistence or any plasticity
- [ ] Build and verify a separately governed Android/AOSP executor; the repository currently ships
only the capability contract
- [ ] Improve the portable demo mode and move toward a one-command local setup
- [ ] Owner-held-key encryption vault (data at rest)
- [ ] Passkeys / WebAuthn login
- [ ] Global lockdown kill-switch
- [ ] SaaS multi-tenancy, production observability, and deployment hardening
## License
SupraCloud IRA is licensed under the [Apache License 2.0](LICENSE). Third-party components under
`third_party/` retain their own upstream licenses and notices.
Built and owned by Praveen Kamineti (Praveen Kumar) · part of the SupraCloud sovereign-AI vision.
© Praveen Kamineti — all rights reserved.
© Praveen Kamineti — all rights reserved.
标签:AI个人助理, AI风险缓解, AV绕过, FastAPI, LangGraph, LifeOS, Python, 无后门, 本地优先, 本地大模型, 逆向工具