Musings on Claude Code, Part 1: The Flexible Canvas
Don't get hung up on the terminal – embrace it instead
Less than half a year has passed since Claude Code was released. Yet it feels like even with all the general excitement (or anxiety, depending on whom you ask) about the possibilities that AI brings us, the momentum generated by its launch has somehow been uniquely strong, both in terms of the promise that it holds as well as the change that it has already brought (interestingly enough, some of it manifesting as a change in mindset more than the change to workflows, at least for now).
I've spent the last 5-6 weekends (and a good chunk of my last vacation, haha) playing around with Claude Code, and found it to be a fascinating journey. It would be impossible to put all my thoughts on this subject into a single post, and if anything, that's not really the goal here – rather, I want to use this and likely the next few posts that I write as an opportunity to summarize & share some of my personal observations about it, both for one's personal projects but also for the future of our work, especially for product managers.
Flexible canvas vs. integrated experiences
Before I dive in, I wanted to share a few basic facts and also contextualize some of the observations I'm going to share later about Claude Code.
I'm a huge fan of AI workflows that the chat interface introduced a few years back – be it ChatGPT, Claude, Gemini, or whatever your AI chat of choice is these days (I'm partial to ChatGPT myself, because I think it remains a superior product from the UI / usability perspective, at least for the time being). I remember the turning point for me was a trip to Europe in the summer of 2023, when I realized that ChatGPT app on my phone became a crucial assist for exploring, and basically replaced all other tools I usually relied upon (except Google, since it could search web back then – but that has been long since remedied). And in many ways, I found AI chatbots to be incredibly useful for any kind of information search & discovery, writing assists, learning (that's one scenario I particularly enjoy), and so on.
At the same time, the chat obviously comes with limitations and while it is an incredibly flexible interface, some tasks don't quite fit with it (e.g., more sophisticated document editing workflows, coding, etc.)
That's not necessarily a problem, since we still have existing apps AI can be integrated into to support more complex scenarios (e.g., Copilot being integrated throughout Office 365, AI writing assists in Gmail or Outlook, things like Cursor or GitHub Copilot in VS Code, etc.)
We also have now all kinds of new apps that act as AI wrappers these days that add specialized UI/prompts/etc. on top of AI APIs, enabling more sophisticated / sustainable workflows for specific scenarios.
Ultimately though, we can broadly categorize those into two buckets. One is an AI chatbot running in the browser (or an app on your phone), offering great flexibility, but also existing in a sort of sandbox separate from the rest of your files, apps, and workflows. The other is the integrated experience where you have either legacy or new apps targeting specific scenarios that are now being infused with additional capabilities via AI.
Combining both worlds
What Claude Code, I think, introduces – and the reason why it feels so distinct from previous AI tools (as well as the reason why every major AI player is now trying to replicate, with Gemini CLI, OpenAI Codex CLI, Qwen Code CLI, etc.) – is that it combines the flexibility of the chatbot with the ability to support in a sustainable fashion complex workflows that you previously could only get in more specialized apps targeting specific use cases, thus bringing the best of these two worlds in a single offering.
I realize that none of those observations are necessarily particularly novel or insightful. Still, I think it's worth pointing this out, given that the clever solution that Claude Code relies on to achieve this (namely, the fact that it lives in the terminal) curiously seems to be a bit of a blocker for the "not strictly technical" folks in the industry, based on some of the conversations I had with friends in the last few weeks. Interestingly enough, there also seems to be some aversion to the idea of Claude Code operating in the terminal from some of the more technical folks as well if they are already heavily invested in workflows like Cursor or GitHub Copilot in VS Code – but that's a separate story.
While not the only advantage of Claude Code, the fact that it runs in the terminal is certainly one of those genius moves that seems obvious & almost inevitable in retrospect, but was anything but at the time. Perhaps there is a better or more vivid metaphor here, but to me the best analogy seems to be the spreadsheet: a clean, unrestricted canvas that gives you the flexibility to construct highly personalized workflows while abstracting away underlying complexity.
Claude Code in my mind offers exactly that: at its core, it remains a chat, but it now has the full power of the terminal at its disposal (plus the power of AI, of course). That means that it can now run any commands, find and edit files, intelligently manage context by saving it into files that can be consumed later, or via running subagents, etc. This is then further extended via the concept of MCP that turns it into a universal interface to connect to all kinds of tools that exist out there, without users needing to manually hook the AI to APIs or figure out how all of this is supposed to be work together, thus once again hiding all that complexity from the user.
The "spreadsheet" moment for AI
The flagship use case for Claude Code is, of course, software development (after all, that's why it has "Code" in the name). I'm not going to focus too much on this, given the amount of information already available out there (if you've missed it though, you should certainly go watch some YouTube videos, just to get a feel for the awesome things that people are doing with it). The 1-sentence version of it would be: the revolution (or hype, depending on who you ask) that began with AI-assisted coding with GitHub Copilot, Cursor and others in the last couple of years, and extended to rapid prototyping & 'vibe coding' types of scenarios earlier this year now came to the next logical step, namely, semi-autonomous agentic coding. This allows one to have Claude Code work fairly independently (or at least with limited supervision), provided you figure out the right setup / workflows (in the form of planning, instructions, etc.) Claude Code also further extends what can be achieved with vibe coding (again, provided you know what you're doing).
The interesting thing, however, is that you can do a lot of other things using Claude Code, many of which will have nothing to do with software development, and thus might be both more relevant & perhaps less intimidating for product managers or anyone else who is not a software engineer (although I would argue that the rapid prototyping capabilities that Claude Code offers are both incredibly exciting and very useful, certainly for product managers, but for a lot of other folks as well, especially if you think about your personal workflows as well).
Here, I want to come back to the parallel with the spreadsheets, flawed as it might be, because I think in many ways it offers some useful intuition here.
You can use the spreadsheets to build financial models, but also task management, knowledge management assists, trackers & other productivity workflows, various automation tooling, and who knows what else, depending on how creative you want to get. There are certainly a lot of specialized applications that offer similar functionality for each of these scenarios out of the box (e.g., various task managers, or trackers) – however, the problem with those is that your ability to customize them is by definition limited, which would often mean that at some point, you might start running into their limitations. Those don't even have to be real limitations, mind you – they might just be the differences between the mental model you have for solving your problem versus what the authors of that particular app or tool had in mind for that scenario – which doesn't make them any less real.
In contrast, spreadsheets give you a greenfield, which means you can design a workflow that works for your specific scenario and then keep customizing it in whatever fashion or to whatever degree of complexity that you desire. My personal favorite example here is the investment tracker: many of us want to be able to track what investments they have, how those grow, how the allocation to various instruments or regions changes over time, etc. There certainly are a ton of tools for that already available, and I've tried a lot of them over the years – yet somehow, inevitably, I would hit their customization limits. This is a common pattern: specialized tools offer out-of-the-box convenience but the trade-off is that you can eventually run into their limitations, forcing you to either accept the trade-offs, search for a new tool, or go back to flexible primitives. So for the last several years, I've been using a (fairly simple) spreadsheet that I designed to fit my specific needs – because for my use case here, I've discovered that I value flexibility more than other properties.
Going back to Claude Code, while it goes without saying that it comes with all the advanced AI capabilities, what feels equally exciting and almost paradigm-shifting to me is the medium you use to interact with it (and by extension, that it uses to interact with your system). It is the terminal that makes it so powerful; like the blank canvas of a spreadsheet, it both lacks the workflow-specific restrictions, and is completely tooling agnostic. To use software development as an example, Claude Code integrates with most IDEs – or you can just let it run in the terminal, if you are going to vibe code.
Now, can an argument be made that the chat interface in the browser already affords similar capabilities? Well, I would argue the answer is both "yes" and "no", in the sense that yes, the chat really offers a blank canvas of sorts, and that is exactly why it is already so powerful and has been so world-changing over the last few years, absorbing a lot of the use cases that many of us had before (for instance, I don't really Google much stuff anymore or use Wikipedia much, instead relying on ChatGPT & then fact-check some of the source links if necessary).
That being said, the advanced productivity capabilities of the chat are by definition limited, and it's also hard to imagine seamless workflows that extend the chat in non-opinionated ways. And that is the biggest difference with Claude Code and also the MCP.
One note worth making here is that Claude Code and MCP don't necessarily have to be bundled together. In fact, if anything, MCP is meant to be an open protocol, and so it is not something that would work with Anthropic offerings only; you can also use MCP via Claude Desktop, for example, thus offering an argument that the capabilities of the chat can be further extended without the need to jump straight into the terminal. But I do think that it makes sense to consider Claude Code and MCP together, because by combining them, you get a tremendously broad surface area, and thus almost unlimited possibilities for various workflows that you can now productively engage with, or customizations you can build from scratch for yourself.
Practical examples: embrace the terminal
One trivial example here is AI writing assist. Again, one could argue that the chat interface already works for those, or that perhaps this is a perfect example of a function that belongs in the word processor apps like Google Docs. And that would be fair, but what Claude Code adds is the ability to supercharge this use case, by efficiently managing context and AI instructions, as well as extend your workflows with any number of additional capabilities as needed.
To make this more concrete, one thing that I've been experimenting with lately was building an AI writing assistant that learns from my past pieces of writing, distills the key bits of how I write (both the good things I want to do more of, and the bad habits I'd like to avoid), and then turns that into a succinct set of instructions I can use over and over again. It then combines these instructions with in-context learning from a select few examples of my past writing, as well as various additional context (e.g., examples for what I consider exemplary writing that I would like to be able to imitate or strive towards); I can then use or forego this additional context depending on the situation. This can then be further extended by, for example, leveraging MCP to connect to additional models from other providers if you want a second opinion, or leveraging Claude Code web search capabilities to search for additional pieces of writing or to fact-check what you wrote, and so on.
Now, can this workflow be replicated in a chat? Once again, in principle, the answer is "yes" – but in practice, that would not be a pleasant experience. With Claude Code running in a terminal, I can have it access a library of dozens or hundreds of documents, seamlessly read instructions from disk, and then save the updated instructions there – all of which helps a lot when you inevitably run into the context window limitations (and believe me, you will run out of the 200k tokens context window very fast here). And then if you decide to extend the scenario further with MCP, that would also be hard to replicate on the chat. So, in a way, I would say while with this AI writing assist scenario, Claude Code does not necessarily offer you completely new capabilities that were previously unavailable, in practice, it sort of does because it creates a much more efficient and thus more practical workflow here.
Obviously not everyone writes in their personal time (although they should!), but it's not hard to see how you could build more or less the same process to distill what a perfect PRD looks like, for example. And then you use that to help you write PRDs at your work while iteratively improving the set of instructions and continuously feeding it additional great examples that you and others create via this or any other workflow at your company.
That, however, is not even the most exciting part. Things get really interesting once you begin pulling additional information that can then be infused into the context via MCP. For example, you could now have MCP servers that allow you to pull the relevant documents from Google Docs, search for the right Jira tickets, find and have Claude summarize the relevant discussions from Slack, etc. One can also build (or wait for others to build) custom MCPs handling much more complex knowledge management workflows specific to the tools & processes that exist at your company.
Then, you pull all that information into the same context window and now you can have an AI writing assistant that can not only help you improve how you structure your PRDs according to best practices, but can also reference the relevant definitions, user problems, recent conversations, products that exist locally at your workplace, and so forth. The possibilities are almost unlimited, as long as you're willing to spend time thinking through the details and write good instructions (which are truly everything with this tool).
Notice how none of the above is particularly technical, or limited to a specific use case and/or function. If anything, even the PRDs example that I referenced is just that – an example – and instead, those could very easily be marketing documents, engineering specs, or any other kind of documents for that matter.
Using Claude Code in the terminal is also fairly user-friendly – one would benefit from learning how to parse some basic commands, and perhaps be prepared to run a few queries to install the relevant MCP servers, but for the most part, the workflow is not meaningfully more complex compared to the chat we are all now accustomed to. And yet, by embracing this new interface (meaning running AI bots in the terminal), you now gain the ability to do even more stuff with AI, and much more efficiently too. You might also be able to get rid of some of the more specialized AI trackers or applications that you are using for these use cases, because it now becomes easier to just manage them via this generalized workflow, which, in my book is always welcome (app / tool overload is always a problem these days).
Those are some of my initial thoughts, some of which might be trivial but I thought still worth sharing; I certainly hope I'll have more observations to share in the coming weeks. I've been experimenting with using Claude Code to both build some extended learning paths for myself around the topics I wanted to learn more about, and also trying to use Claude Code to help build a custom interface to enhance the experience of progressing through those learning paths. So, stay tuned for that if you're interested.