<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Naoki Ishihara</title>
    <description>The latest articles on DEV Community by Naoki Ishihara (@naoki_ishihara_d8646adfae).</description>
    <link>https://dev.to/naoki_ishihara_d8646adfae</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3172393%2Fb23c8c01-a638-456f-a748-45862bded2c4.png</url>
      <title>DEV Community: Naoki Ishihara</title>
      <link>https://dev.to/naoki_ishihara_d8646adfae</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naoki_ishihara_d8646adfae"/>
    <language>en</language>
    <item>
      <title>Natural Language Browser Automation with Amazon Bedrock &amp; Playwright</title>
      <dc:creator>Naoki Ishihara</dc:creator>
      <pubDate>Sat, 17 May 2025 19:05:17 +0000</pubDate>
      <link>https://dev.to/naoki_ishihara_d8646adfae/natural-language-browser-automation-with-amazon-bedrock-playwright-3hji</link>
      <guid>https://dev.to/naoki_ishihara_d8646adfae/natural-language-browser-automation-with-amazon-bedrock-playwright-3hji</guid>
      <description>&lt;p&gt;Nova-click lets you control your browser with plain text commands. It's built with Amazon Nova (via Amazon Bedrock) and Playwright. Check it out on GitHub: &lt;a href="https://github.com/Naoki0513/nova-click" rel="noopener noreferrer"&gt;nova-click&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR ⏩
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Key Takeaway&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What can it do?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Convert plain text commands into browser actions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dependencies?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Only boto3 and Playwright required.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Amazon Nova (via Amazon Bedrock)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Where to try?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;See the source on GitHub: &lt;a href="https://github.com/Naoki0513/nova-click" rel="noopener noreferrer"&gt;https://github.com/Naoki0513/nova-click&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Who is it for?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ideal for developers and researchers interested in browser automation.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Demo 🎬
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklqyk0woz87whfhoxjy7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklqyk0woz87whfhoxjy7.gif" alt=" " width="200" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Prompt: "Search for the most popular waterproof Bluetooth speaker under $50 on Amazon and add it to the cart.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;View the high-quality version &lt;a href="https://github.com/Naoki0513/nova-click/blob/main/assets/demo.gif" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start 🚀
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repository&lt;/span&gt;
git clone https://github.com/Naoki0513/nova-click.git
&lt;span class="nb"&gt;cd &lt;/span&gt;nova-click

&lt;span class="c"&gt;# 2. Install dependencies&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;&lt;span class="nv"&gt;boto3&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;1.38.13 &lt;span class="nv"&gt;playwright&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;1.40.0
python &lt;span class="nt"&gt;-m&lt;/span&gt; playwright &lt;span class="nb"&gt;install &lt;/span&gt;chromium

&lt;span class="c"&gt;# 3. Set up AWS credentials&lt;/span&gt;
&lt;span class="nb"&gt;mkdir &lt;/span&gt;credentials
vim credentials/aws_credentials.json   &lt;span class="c"&gt;# Save with the format below&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"aws_access_key_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AKIA…"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"aws_secret_access_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"xxxxxxxx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"region_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 4. Launch&lt;/span&gt;
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Modify the constants in &lt;code&gt;main.py&lt;/code&gt; to test different prompts and models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation 💡
&lt;/h2&gt;

&lt;p&gt;"Imagine AI managing all your browser tasks—that would change the game."&lt;/p&gt;

&lt;p&gt;Automating repetitive browser tasks lets users focus on creativity and impact—this idea inspired nova-click.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works ⚙️
&lt;/h2&gt;

&lt;p&gt;nova-click loops through three steps&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Page ARIA tree snapshot as JSON&lt;/li&gt;
&lt;li&gt;Amazon Bedrock decision (click or type)&lt;/li&gt;
&lt;li&gt;Playwright action execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repeat until your task is complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Amazon Nova? 💎
&lt;/h2&gt;

&lt;p&gt;Amazon Nova, running on Amazon Bedrock, delivers cost-efficiency, speed, and large context support. Here's how it compares:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input Cost ($/M tokens)&lt;/th&gt;
&lt;th&gt;Output Cost ($/M tokens)&lt;/th&gt;
&lt;th&gt;Context Window&lt;/th&gt;
&lt;th&gt;Speed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Amazon Nova Pro&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.80&lt;/td&gt;
&lt;td&gt;3.20&lt;/td&gt;
&lt;td&gt;Up to 300K tokens&lt;/td&gt;
&lt;td&gt;◎&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPT-4o&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2.50&lt;/td&gt;
&lt;td&gt;10.00&lt;/td&gt;
&lt;td&gt;Up to 128K tokens&lt;/td&gt;
&lt;td&gt;○&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Claude 3.7 Sonnet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3.00&lt;/td&gt;
&lt;td&gt;15.00&lt;/td&gt;
&lt;td&gt;Up to 200K tokens*&lt;/td&gt;
&lt;td&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  FAQ ❓
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q1. How does nova-click differ from Nova Act?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nova Act (&lt;a href="https://nova.amazon.com/act" rel="noopener noreferrer"&gt;https://nova.amazon.com/act&lt;/a&gt;) is Amazon's dedicated browser-automation model, while nova-click is a lightweight framework that works with any general-purpose LLM.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Q2. How reliable is it?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;nova-click is an early research prototype and can be flaky—expect occasional missteps on complex pages, so review and tweak its actions as needed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Q3. Does it use Playwright MCP?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No—nova-click uses plain Playwright in Python, though it draws inspiration from MCP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Get Started 🎉
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Clone and run &lt;code&gt;python main.py&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Describe your workflow in plain English.&lt;/li&gt;
&lt;li&gt;Stars, issues, and PRs welcome.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Join us in exploring LLM-driven browser automation with nova-click.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>aws</category>
      <category>llm</category>
      <category>agents</category>
      <category>bedrock</category>
    </item>
  </channel>
</rss>
