A Vision for the Ultimate AI Developer Tool

2025-07-13 · Ryan X. Charles

The ultimate developer tool should let the developer manage state and context for AI chats in a way maximally compatible with existing tools and workflows.

Basically, it should save chats as Markdown files.

Detailed Overview

In detail, the way it should work is like this:

  • Store individual chats as Markdown files. Metadata can be included as TOML or YAML. If you need to store binary data like images, link to the image file in the Markdown. If you need indexed, structured data, link to a SQLite database file in the Markdown.
  • Provide access to Markdown file-based chats in every environment where the developer lives:
    1. The terminal (CLI),
    2. Their editor (plugins for Neovim and VSCode),
    3. Their browser (browser extensions for Chrome, Firefox, Safari, etc.),
    4. Their desktop operating system (system tray app for macOS, Windows, and Linux).
  • The fundamental UI is a chat with tools to include context automatically and perform actions automatically, all at the discretion of the user. For instance, in Neovim, the user can press a hotkey to insert the current date, or the current file name, or the contents of the current file, or a link to the current file for uploading. They should also be able to perform actions automatically, such as by providing a list of functions such as “create file” or “overwrite file”. The AI will suggest these actions and the user can select one to perform it.
  • The tool is not agentic by default. In the same way that git does not automatically create commits, the developer tool should provide all the tools necessary to manage state and extract functionality, but never perform actions automatically, unless specifically requested by the user, such as by running a loop from an external script.

Example

Using Markdown files to store state is maximally compatible with existing tools and workflows.

Let’s consider the case of copying a chat.

A chat is just a file. Therefore, you can copy a chat by:

  • Command line: cp chat.md chat-copy.md
  • Neovim: :w chat-copy.md
  • VSCode: Right-click the file in the file explorer and select “Copy”
  • System file manager: Right-click the file and select “Copy”

Other common operations, such as moving, backing up, diffing, find/replace, versioning, and so on, all have common ubiquitous solutions that work on the command line, in editors, and in file managers. All of these tools are compatible with the Markdown-centric state storage approach.

Conclusion

I am currently building these features into Chatvim and hope to gradually roll out a fully-featured developer tool that meets these requirements.


Earlier Blog Posts


Back to Blog

Copyright © 2025 Ryan X. Charles
Home · Blog · Apps · Social · CV · Contact