Tidewave Web: in-browser coding agent for Phoenix (and LiveView)

Finally also watched the video linked a few weeks ago and, together with this post, I have to say: very well done!

I second @vanderhoop’s concern here: I’d like to try it but I want finer-grained permissions because I am not looking forward to containerizing my dev env (haven’t done it in a while and I am sure it’s not going to go quick or easy).

I had Elixir 1.15.6-otp-26 / Erlang 26.2 installed and had this message when testing Tidewave Web with : “Can you add a ‘homepage’ button in my menu” :

”I am unable to read the files that likely define your menu or layout due to an internal error. To add a “homepage” button to your menu, I need access to your layout/menu HEEx template or the component implementation.”

When unfolding the exclamation mark it pointed to (don’t have the exact message) :

Path.safe_relative is undefined

Installed Elixir 1.18 and everything works super fine.

Can report this issue in the right location if needed.

1 Like

Thank you, I currently pushed a fix to CI. Will release a new version within the next 24 hours and let you know.

2 Likes

Wow great

I gave it a whirl last night with a toy project I’m tinkering with. Linked it to my copilot pro account, and engaged with premium Claude Sonnet 4 (because the free GPT-4.1 is utterly rubbish at elixir, IMO).

I asked for it to add live view actions to add/edit/delete records for a three-field form. Worked pretty well, I was pleased with the result. However, when I checked my premium usage for the month, this action blasted through 46.1% of my free premium requests allotment.

Rolling back my changes and doing the same thing in the agent panel in Zed Preview took 2.5%. Probably something about the agent performing UI actions would account for this discrepancy? While I’m happy to kick the tires, from my first experience Tidewave seems like a great tool for wealthy hobbyists or developers with access to the company credit card.

1 Like

For anyone who’s using Kilo Code with Tidewave MCP without using a proxy (which seems to handle dev server restarts fine), it’s necessary to specify that the Streamable HTTP transport be used:

.kilocode/mcp.json:

{
  "mcpServers": {
    "Tidewave": {
      "url": "http://localhost:4000/tidewave/mcp",
      "type": "streamable-http",
      "headers": {},
      "alwaysAllow": [],
      "disabled": false
    }
  }
}

I haven’t trusted myself with using in-editor LLM AI up until now, thinking it’s important that I understand every line of code in a project, and instead have only asked Perplexity for help with specific bits of code. I’ve now tried Tidewave Web, set up an Anthropic API/console account (I gathered this would be better than Copilot for additional, general, non-coding use), installed Kilo Code in VS Code and added the Tidewave MCP server to it. It’s still very early days - as mentioned, I haven’t been a big user of AI for coding - and I’ve only really used it for one (Ecto-related) thing so far, but, boy - it seems like it’s going to save a lot of time. As well as solving what I’d asked it about, it seemed to cotton on to the next step before I’d asked about it, decided to look for an existing schema (which I’d happened to have already created), found the right one, and added more working code, which I then discussed and had it refine/DRY-out.

Thanks very much for making this available! I expect I’ll be subscribing to the Web edition for the LiveView-related capabilities, even though I may want to handle the exact HTML and CSS myself.

Oh, and just a note in case it’s useful for others going with Anthropic API, I found that with the initial, free $5-credit tier of Anthropic API, the rate limit for input tokens was predicted to be reached, so I needed to add a credit card and add another $5 to get to tier 1 with less restrictive input token rate-limiting.

2 Likes

The changes should be live now, please give it a try.

The browser testing will definitely lead to more token usage, however, I would not expect such a drastic difference. Just to confirm, your Zed is linked to the same copilot account and used the same model?

Yes. It was Claude Sonnet 4 on the same copilot login in both cases. I was very taken aback.

If you still have both chats and you would be comfortable with sharing them, please do send me an email! That would be very appreciated!

Happy to try. Is there any particular way to get an export of the full chat from tidewave?

This Tidewave web workflow is absolutely mind-blowing :clap: :clap: :clap:

What about support for the new DeepSeek? Is there a possibility to use local running models?

2 Likes

Open up the desired chat and then run this in your console:

// Extract chat ID from URL
let url = new URL(window.location.href);
let chatId = decodeURIComponent(url.searchParams.get('chat-id'));
console.log('Chat ID:', chatId);

// Find tidewave database and read from IndexedDB
indexedDB.databases().then(databases => {
    let tidewaveDb = databases.find(db => db.name.startsWith('tidewave:'));
    let request = indexedDB.open(tidewaveDb.name);
    
    request.onsuccess = function(event) {
        const db = event.target.result;
        const transaction = db.transaction(['chatMessages'], 'readonly');
        const store = transaction.objectStore('chatMessages');
        const getRequest = store.get(chatId);
        
        getRequest.onsuccess = function(event) {
            const result = event.target.result;
            console.log('Chat data:', result);
        };
    };
});

Once you run it, you will see something called “Chat data” logged as JSON. You can copy it to a Gist and share it with us.

1 Like

If you have GitHub Copilot pro and enable gpt-5-mini in your Copilot settings then you have that unlimited in theory and should match or be better than Sonnet 4.

Tidewave and gpt-5-mini combo works very well.

2 Likes

I first tried Tidewave in July and it felt like magic. I quickly subscribed to Pro Claude – it opened my eyes to AI’s potential.

Recently I wanted to set up Tidewave for another project and noticed that the website and docs now mainly guide users toward the paid browser version. If I didn’t already know Tidewave, I’d assume that’s the only way to use it.

I admire the Elixir team and Jose for creating something amazing. But this change feels a bit like something from a big-corp playbook. It made me wonder: why not keep both paths visible? Support those who want the convenience of the browser and those who want to integrate Tidewave into their usual engineering workflow.

Tidewave inspired me to rethink my dev process – I’d just do not like to see its open spirit obscured.

Thanks for all the work you do, and for the Elixir ecosystem.

1 Like

I cannot imagine how it could be designed better than already existing VCS + Auto-run. There is next to zero chance the interrupted in the middle agent would leave somewhat meaningful on the table. I did not try tidewave myself (because I am not working with web/phoenix, not because I doubt it’s amazing,) but the only fine-tuning setting really valuable would be “Ask when reaching out to modify stuff beyond this project” in Auto-run mode.

When I am after some massive change, I ask the buddy to start in a new branch. If it’s about tiny changes, main works. If something goes south, I always have git checkout.

Tidewave’s ability to work with running systems puts it squarely in the realm of dynamic data, including quantitative, relational, and temporal information. This makes me curious about the status and prospects for database integration. For example, various options for managing runtime data are intriguing:

One way to approach this would be to set up each database of interest as an MCP (Model Context Protocol) server. FWIW, I had a chat with Google’s AI mode about this. It said:

Providing Tidewave with a graph database as an MCP server offers significant benefits by leveraging the database’s ability to model and traverse interconnected data structures. However, this setup also introduces complexities related to security, performance, and data modeling. The potential advantages are most pronounced for applications with complex, evolving relationships, which Tidewave can then use to generate more accurate and context-aware code.

Comments? Clues?

-r

You can now customize which tools to allow/deny/ask in your settings.

4 Likes

Thanks for the update, @josevalim! Tell the team nice work; it’s super simple to scan through the perms and setup :+1:

2 Likes

I really haven’t been using much of the AI stuff in my development. So what does Tidewave Web help me with as a developer?