Why I'm Building an MTG Arena Companion from Scratch

See what your games are telling you.

Why I'm Building an MTG Arena Companion from Scratch

You lose a close game. Something happened on a complicated turn — a trigger you didn't track, a long opponent turn where you glanced at your phone and came back to a completely different board. You want to go back and look at what happened.

Arena shows you the results screen for a few seconds, and then the game is gone. No replay, no match history, no way to revisit the sequence of events. You close the game knowing you missed something, but not knowing what.

Here's the thing: Arena recorded every detail of that game. It writes a log file every session: spells cast, triggers resolved, scry results, combat assignments, all timestamped and structured. The data you wanted was there. The client just wasn't designed to surface it.

What does Arena actually record?

Arena is a game client, and game clients are built to keep you in the next match, not reviewing the last one. That's a reasonable design choice, not a failing. But it means there's a structural gap between what the game records about your matches and what it shows you as a player.

With "Detailed Logs" enabled in settings, Arena writes enough data to reconstruct your entire game from the log alone. This is what makes deck trackers possible, and most existing tools focus on exactly that: deck tracking and draft ratings. They're useful. But after spending time with the raw log data, I kept coming back to the same question: why isn't anyone surfacing the rest of it?

How hard can it be to build an action log?

This is the feature that started the project.

Arena's live in-game action log is almost non-existent. Text flashes on screen and disappears within seconds — miss a trigger or lose track of how damage was assigned across multiple blockers, and it's gone. But the detailed logfiles capture all the raw material needed for a scrollable, searchable, persistent action log.

No actively maintained tool ships an in-game action log overlay. And for good reason: the game engine sends partial state updates, not clean event descriptions, and merging those into a running game state is real engineering work. But for anyone who's stared at a board wondering "wait, what just happened?", the live action log is what's missing.

What I started building on February 7th

I'm working on a desktop companion for MTG Arena I'm calling Manasight. The name is simple: mana + sight. And so is the goal: learn from every game you play.

It's a lightweight overlay that reads the game log in real time, then turns it into something you can actually use. No Overwolf, no extra platform, just a standalone app that runs alongside Arena.

At launch, Manasight will have three features: the action log I described above, a deck tracker (cards remaining, draw probabilities, opponent cards seen), and a connection health indicator that tells you whether your opponent is still connected or you're staring at a frozen game. Anyone who's sat through a two-minute mystery pause knows why that last one matters.

The deck tracker is table stakes; every companion tool has one. The action log is what makes this different. And honestly, the connection health indicator might be the feature I'll use most myself.

What am I building toward?

After launch, what I want to build is a game replay viewer: turn-by-turn reconstructed replays of your matches. This is one of the most-requested features I see across MTG forums and subreddits, and no tool currently ships it for constructed games. The log data makes full game reconstruction possible. It's a hard problem, and I can't wait to start on it.

Replays open the door to something bigger: coaching infrastructure. Rewind to any decision point in a game and ask "what if I'd blocked differently?" Counterfactual analysis that lets you explore alternate lines. Add timestamped annotations from human and AI coaches at the moments that mattered, and you have async coaching at a fraction of the cost of live sessions. I don't want to just track games. I want to help players learn from them.

That vision is months of work away. I mention it because it shapes every architecture and data decision I'm making now. But I'm not going to pretend it's around the corner. What ships first is the overlay: action log, deck tracker, connection health. The rest gets earned.

Why am I building this in 2026?

This idea has been in the back of my head for a while. I've wanted better Arena tooling, and I have the engineering background to build it. But a companion tool is a lot of software for one person: desktop overlay, backend API, web platform, data pipeline.

What changed is AI-assisted development. I'm building Manasight with Claude Code as a development partner, and it has meaningfully changed what's feasible for a solo project. I'm not outsourcing the thinking. I design the architecture, make the product decisions, and own the code. But the velocity is different. Work that would have taken days takes hours. Boilerplate gets handled so I can focus on the problems that matter.

I'll write more about my experience building with AI in a future post. For now, the relevant point: AI-assisted development is what makes it realistic for one developer to ship a full-featured companion tool and give most of it away for free.

What I'm not willing to compromise on

A few commitments that shape how I'm building Manasight:

All formats free. Game tracking for every format Arena supports (Standard, Historic, Explorer, Limited, Brawl) with no paywall. Some existing tools restrict format tracking behind a subscription. I think basic tracking should be available to every player regardless of what they play.

Mac and Windows from day one. Nearly every Arena companion tool is Windows-only. Mac players have had almost nothing for years. I'm building with Tauri (Rust backend, web frontend) specifically because it compiles native binaries for both platforms from one codebase. Mac isn't a future roadmap item; it's a launch requirement.

Self-collected data only. Manasight's data pipeline will be built from data contributed by its own users. I won't bootstrap from third-party sources even where technically possible. Data-powered features like draft ratings will take longer to reach useful scale. That's an acceptable trade-off for building on an ethical, transparent foundation.

Open-source parser and uploader. The log parser will be open-source. Any developer will be able to inspect how I handle your data, and call me out if it's not secure or safe. If other developers want to build on the same work, they will be able to.

What's next

I'm going to keep writing here as I build: technical decisions, things I learn about Arena's data, problems I run into, and honest accounts of what works and what doesn't.

Next up: the guiding principles I settled on before writing any code — I was surprised by how many ethical and design decisions came up first.

If you're an Arena player who's wished the game told you more about your own matches, that's who I'm building this for. Built by a player, for players.


I'm Tim. Subscribe to get new posts by email, or follow @manasightgg on Twitter.

Manasight is not affiliated with, endorsed by, or sponsored by Wizards of the Coast or Hasbro.