Inspiration

I'm a computer-science student. My deadlines are scattered across four different portals, I work on two PCs, and every AI I tried forgot me the moment I closed the chat. Most of them also stop at the sign-in page: they can't see my course portal, and I wasn't going to hand an agent my passwords.

So I built the assistant I wanted: a personal AI that lives on my own PC, works inside the websites I'm already signed into, and remembers me.

What it does

  • Works inside your signed-in websites. A real Chromium browser is built in, and sign-ins survive restarts. The agent opens its own background tabs, reads whole pages, clicks, types and downloads files while you keep browsing. Saved passwords are filled in by the app and never reach the model. When a page needs a sign-in or a human check, the agent hands it to you and waits.
  • Remembers you. After each task, Auto Memory picks out what is worth keeping, at three levels: global, per workspace and per chat. A new chat already knows your goals, habits and preferences.
  • Works on its own. Reminders, agent tasks ("every weekday at 8:00, check my portal and note new deadlines") and emails run on a schedule while the app is open, including from the tray, and it can start with Windows.
  • Looks things up properly. Web search runs on Tavily, which needs no key, together with Google, then reads the full text of the top results.
  • Follows you between PCs. Memories, everyday chats, schedules, bookmarks and prompts sync through your own Google Drive. There is no MyHarness server.

How we built it

MyHarness is an Electron desktop app written in TypeScript, with a local-only Web UI and its own agent runtime. Nebius Token Factory is built in: paste one API key, MyHarness checks it against the account's model list, and every job gets its model through the same OpenAI-compatible API.

  • NVIDIA Nemotron 3.5 Lightning does the always-on work: memory upkeep, scheduled tasks, compaction, fallback, hand-off notes and bookmark notes.
  • NVIDIA Nemotron 3 Ultra does the hard thinking: sub-agents, conversation naming and translation.
  • NVIDIA Nemotron 3.5 Super VL is the eyes: it reads images and screenshots for the main model.
  • DeepSeek V4.1 Flash is the main chat by default, because the Nemotron models had problems calling tools as the main agent in my testing.

Tavily is called at runtime on web searches: through its free keyless channel by default, or its API when the user adds a key. Results from Tavily and Google are merged and ranked, and the top pages are read in full.

Challenges we ran into

  • Making a small model dependable as an agent. Nemotron sometimes sends true/false as the text "True", and MyHarness used to refuse those calls. It now accepts them on its own tools.
  • Testing found what demos hide. The memory test found two real bugs: a whole self-introduction was lost when the model made up an entry ID, and older facts were overwritten when an entry was updated. After the fixes, no failure in the final runs was caused by MyHarness.
  • Not getting around human checks. A personal agent should not try. It shows a help card over the browser with the reason, waits for you, and carries on when you press Done.
  • Keeping the app fast. A chat with 137 MB of images took 1.6 s to open. Moving images out of the chat file brought it to 0.04 s.

Accomplishments that we're proud of

I tested the core workflows in real runs, with the main chat moved to Nemotron 3.5 Lightning so that every reply came from an NVIDIA model. The scripts, per-item results and failures are public: evaluation.

  • Web search: 196 / 200 correct with Google + Tavily on random SimpleQA questions (the same model with no search: 10 / 100).
  • Memory: 111 / 120 correct on questions asked in brand-new chats. Asked about things it was never told, it said so 24 / 24 times.
  • Signed-in websites: 8 / 9 tasks done on a demo portal.
  • Human checks: 3 / 3 handed to a real person; the agent never touched the check.
  • Images: 15 / 15 questions correct through Super VL.
  • Scheduled tasks: 9 / 9 set for the right time, 7 of the right kind; 6 / 6 due ones started within 1 s.
  • Sub-agents: 4 / 5 complete on a 3-part research task on Ultra.

A looked-up answer cost about $0.006 at list prices, background jobs included.

What we learned

  • Tools can matter more than model size. Search took Nemotron 3.5 Lightning, with 3 billion active parameters, from 10 to 97 correct on the same 100 questions.
  • The right model is the cheapest one that does the job. On looked-up answers Lightning was not worse than Ultra, and it cost 10 to 20 times less.
  • More agents are not always better. The right choice depends on the job.

What's next for MyHarness

Today's limits:

  • Windows x64 only, and the installer is not code-signed. There is no hosted demo, because the product works on local files.
  • Model replies need your own Token Factory key.
  • There is no sandbox and no per-tool approval: the agent has your access to your own PC.
  • Sync is not end-to-end encrypted, except the browser's sign-ins.
  • The evaluation ran on one PC on one day, I graded my own project, and its website is a made-up portal.

The full list is in the evaluation.

What comes next:

  • Cloud deployment, so that scheduled tasks can keep running while the PC is off.
  • Testing on more real websites, and schedules over longer periods.
  • Nemotron as the default main chat, once its tool calls are dependable enough.
  • Develop more reliable agent tools.
  • Integrate voice input. And give the AI its own voice.

Built With

Share this project:

Updates

Submission history