open-aura
Open Aura - open-source, local-first AI-work scoring over MCP
Documentation
Open Aura
Open-source, local-first: turn your real AI coding sessions into a scored builder profile, entirely on your own machine.
Open Aura is an MCP server your agent (Claude Code, Cursor, Claude Desktop, …) connects to. After a session, the agent sends a redacted evidence packet — truncated snippets + file metadata, never raw code or prompts — and Open Aura scores how you worked *with* the AI and stores it in your local Postgres. No login, no account, nothing leaves your machine.
> Want a public profile, the shared leaderboard, and team insights? Those live in the hosted edition at vibelevel.ai.
Quickstart (Docker)
cp .env.example .env # then set OPENAI_API_KEY to your OpenCode key
docker compose up # Postgres + backend (MCP :8090) + viewer (:3000)
docker compose up -d --build # rebuild images after pulling changesPoint your agent's MCP config at the local server (no auth in local mode):
// Claude Code / Cursor MCP config
{
"mcpServers": {
"aura": { "url": "http://localhost:8090/mcp" }
}
}Then, after a piece of work, ask your agent to "score this session with Aura."
Local viewer
A read-only web viewer ships with the stack (its own `aura-ui` container). After `docker compose up`, open http://localhost:3000. A left sidebar — Profile · Getting Started · Leaderboard · Sessions, a recent-sessions list, and a greyed *Coming soon* group (importing your sessions / submitting to the leaderboard — those live in the hosted edition) — sits beside the content: the hero score block, flip-able insight cards, dimension bars, and a read-only pull of the public leaderboard. It reads your local data through the backend's REST API and never scores or writes anything.
Updating / rebuilding
The stack bakes the source into its images at build time (`aura-app` from `.`, `aura-ui` via `next build`) — there are no live source mounts. So after you `git pull` new code, a plain `docker compose up` keeps running the old cached images and you won't see the changes. Rebuild:
docker compose up -d --buildIf a change still isn't showing (a stale layer cache), force a clean rebuild:
docker compose build --no-cache aura-app aura-ui
docker compose up -dThen hard-refresh the viewer (Ctrl/Cmd+Shift+R). The backend startup log prints the running version + build (e.g. `Open Aura v0.2.0 · build …`) so you can confirm the new code is live.
What it measures
A referenceless read of your process — no rubric, no test cases — across dimensions like prompting effectiveness, AI collaboration/steering, problem decomposition, and human contribution vs. AI reliance, plus a session archetype, insight cards, and measured telemetry (tokens, tools, "ships-it" lifecycle). Tools exposed: `score_this_session`, `import_history`, `get_my_profile`, `whoami`.
Privacy
The redaction contract is the whole point: raw transcripts and file contents never leave your machine. The agent sends only truncated text excerpts and file *paths/metadata*. In local mode the scoring and profile paths make no outbound calls — everything stays in your local Postgres. (The only exception is the viewer's optional Leaderboard tab, which does a plain read-only `GET` of the public leaderboard from vibelevel.ai — it sends none of your data.)
Configuration
| Var | Default | Purpose |
|---|---|---|
| `AURA_LOCAL_MODE` | `true` (in `.env.example`) | single local user, no PAT/login |
| `AURA_SCORING_MODEL` | `openai/gpt-oss-120b` | scoring model (provider routing in `model_config.json`) |
| `OPENAI_API_KEY` / `GROQ_API_KEY` / `ANTHROPIC_API_KEY` | — | bring your own; set the one your model uses |
| `OPENAI_BASE_URL` | OpenAI default | optional OpenAI-compatible endpoint (for OpenCode, use `https://opencode.ai/zen/v1`) |
| `POSTGRES_URL` | compose-provided | local Postgres (apply `schema.sql` for bare-metal) |
| `AURA_MCP_PORT` | `8090` | MCP server port |
Experimental: PFG operational insights
An opt-in, off-by-default capability that turns a scored session into concrete,
tool-aware tips. The graph already maps the tools builders actually use — **Claude
skills, LangChain, the OpenAI SDK, MCP servers**, and more — so Open Aura can look at
what you built and nudge you toward them: *"you hand-rolled this, but there's an
established SDK for it,"* or *"there's a Claude skill for exactly this."* These *check-tips*
are advisory only — they never change your Aura score.
It works precisely *because* Open Aura is local — it reads your real `git diff` and
full transcript (passed as `local_context`, never persisted or scored) instead of a
redacted summary.
To turn it on you need a read-only Personal Access Token from
graph.vibelevel.ai — see the Getting access section in
`docs/PFG_INSIGHTS_POC.md` and the `PFG_*` vars in
`.env.example`.
How it's built
- `src/aura_mcp/` — the MCP server (`server.py`) + the single-local-user binding (`local_auth.py`).
- `src/services/aura/` — the referenceless scorer, signal extraction, archetypes, profile aggregation, and the scoring rubric (`aura_model_coding.py` / `aura_model_writing.py`) — open for contributions.
- `src/core/` — slim config, Postgres pool, and LLM provider routing.
- `aura_mcp_app.py` — the entrypoint that mounts the MCP app + the REST API + `/health`.
- `packages/aura-ui/` + `web/` — the React viewer components and the Next.js host that renders them (the `aura-ui` container).
Roadmap
Current focus areas — contributions welcome (granular items live in Issues):
- Improve scoring — make the rubric more discriminating and harder to game: sharper archetype / human-contribution bands, a human-contribution score cap, and better-calibrated dimension scores.
- Import sessions to VibeLevel Aura — a browser-mediated export → sign-in → publish flow so your local Aura becomes a shareable, recruiter-facing profile on vibelevel.ai (nothing is uploaded automatically).
- Improve VibeGraph / PFG insights — tighter tag extraction and graph resolution (fewer loose matches), bounded/latency-safe grounding, and clear transparency about what stays local vs. what your BYO model sees.
Contributing
Issues and pull requests are welcome — see CONTRIBUTING.md.
License
Apache-2.0 — see `LICENSE`.
VibeLevel and Aura are names and brands of VibeLevel. This repository is the
local-first, open edition. The hosted service at vibelevel.ai —
the public leaderboard, shareable profiles, and the aggregated network — is
separate and not included here. The license grants no rights to the VibeLevel
or Aura names or logos, or to operate a hosted service using them.
Frequently asked questions
What is open-aura?
open-aura is Open Aura - open-source, local-first AI-work scoring over MCP
How do I install open-aura?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is open-aura open source?
Yes — it is hosted on GitHub at https://github.com/vibelevel-ai/open-aura and has 6 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Automate browser based workflows with AI
Hindsight: Agent Memory That Learns
A privacy-first app that strips AI watermarks from content you own.
Agent framework and applications built upon Qwen>=3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.
The power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP