Inspiration
Students juggle lecture notes, deadlines and job applications, and the AI tools that could help want their grades, CVs and emails in someone else's cloud. We wanted a personal AI that works for you all day, but where you stay in control of your data and can see exactly what it does.
What it does
NoGain is an always-on, private study and career copilot.
- Study engine: ingests your notes and PDFs, builds a 7-day study plan, and generates flashcards and quizzes from your own material.
- Persistent memory: remembers where you struggle ("you struggled with recursion") and uses that in plans and chat. You can view and delete every memory.
- Always-on briefings: a background scheduler produces a morning briefing from your deadlines and weak topics.
- Career engine: tailors CV bullets and a cover letter to a job posting, using only real experience from your profile. Any bullet that doesn't cite a real entry is dropped.
- Privacy router: sensitive fields such as email, phone and grades are redacted before a request reaches the hosted model.
- Safe by default: every tool call and model call lands in an audit log you can read in the UI. Risky actions need your approval, and sending email is disabled (drafts only).
How we built it
- Models: NVIDIA Nemotron served through Nebius Token Factory's OpenAI-compatible API.
[CONFIRM: live model works with our key; otherwise say "demoed with a mock model"] - Security: two layers. NVIDIA OpenShell provides sandboxing with a filesystem allowlist and default-deny network egress.
[CONFIRM: OpenShell sandbox demo ran; otherwise say "designed for OpenShell, enforced by a policy engine that reads the same policy file"]Our app layer adds per-tool toggles, human approval, and a taint rule that blocks risky actions proposed from untrusted content. - Core: Python and FastAPI, SQLite, local embeddings, APScheduler for the daemon, and a Streamlit UI.
- Deployment: a container image, with a script for Nebius Serverless AI endpoints.
- The model never runs anything itself. It only proposes JSON actions, and our core executes them through a single audited, policy-checked function.
Challenges we ran into
- Nemotron on Nebius is a reasoning model, so replies can arrive with empty
content. We avoided native tool-calling and used a JSON action protocol with a fallback to the reasoning field. - OpenShell defaults to audit mode, which logs a violation but still allows it. We had to set
enforcement: enforcefor the blocks to work. - OpenShell has no per-tool toggles, so we built that layer ourselves and kept it clearly separate from the sandbox.
- Building a security-focused agent in 24 hours meant cutting scope hard.
Accomplishments that we're proud of
- A live prompt-injection demo: a malicious job posting tells the agent to read an SSH key and POST the CV to an attacker's server. Both actions are blocked and appear in the audit log.
- Every claim about what the AI "knows" about you is inspectable and deletable.
- A test suite covering the policy engine, approvals, the injection scenario and the end-to-end study flow.
What we learned
Default-deny beats trying to detect malicious text. We assume the model can be fooled, so safety comes from what it is allowed to do, not from what it is told. We also learned how much of "private AI" is plain engineering: audit logs, allowlists and approval gates.
What's next for NoGain
- Run the full agent worker inside the OpenShell sandbox and import its logs into the UI audit panel.
- Route the most sensitive requests to a small local model instead of redacting them.
- Agent-created reusable skills (for example an "exam-prep" skill), calendar integration, and spaced-repetition scheduling.
- Provenance tags on memories to reduce memory-poisoning risk.
Built with
Python, FastAPI, Streamlit, SQLite, APScheduler, NVIDIA Nemotron, NVIDIA OpenShell, Nebius Token Factory, Nebius Serverless AI, Docker
Log in or sign up for Devpost to join the conversation.