GROQ with Llama, Continue.dev and DeepSeek R1

Published: Feb 13, 2025 by Isaac Johnson

Groq started out way back in 2016 by some former Google Engineers as a company eager to build AI Hardware to rival GPU makers like NVidia. The focus lately on AI has seen them show off their hardware by way of Groqcloud. They have a token as a service model designed for companies that want to use their AI in their software, however, if you want to deploy on-prem its a “talk to us” situation.

Today I wanted to try using GroqCloud as a developer - how does this compare to Ollama, Mistral and Azure AI just to name a few. I should be clear, it does not appear (to me at this point), Groq is a model maker, they are instead a hardware maker who offer an insanely performant backend for all these new AI models popping up. So insofar as we get to use their Groqcloud to test AI models, the goal (I believe), is to build an app dependent on their speed and pay for the token-as-a-service or the enterprise hosted model.

Enough preamble.. let’s sign up and give it a try.

Signup

We can signup with Google

/content/images/2025/02/groqcloud-01.png

I’ll stay in the Free tier, but they do have a Business tier

/content/images/2025/02/groqcloud-02.png

From there I can create an API key

/content/images/2025/02/groqcloud-03.png

And see the ones I created

/content/images/2025/02/groqcloud-04.png

Playground

There are two modes we can use in the Web UI, Playground

/content/images/2025/02/groqcloud-10.png

and Studio which has a separate Response area

/content/images/2025/02/groqcloud-11.png

Continue.dev

I can now add it to my Continue.dev profile

/content/images/2025/02/groqcloud-05.png

At first, I saw an error

/content/images/2025/02/groqcloud-06.png

then I realized the model suggested by Continue.dev was wrong:

/content/images/2025/02/groqcloud-07.png

However, once I changed my config.json to match what I see in the console, it worked

/content/images/2025/02/groqcloud-08.png

    {
      "title": "Llama3.3 70b Chat",
      "model": "llama3-70b-8192",
      "contextLength": 8192,
      "apiKey": "gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "provider": "groq"
    }

Here we can see the code it suggested to my query “create python code to generate a random 32 character length string”

/content/images/2025/02/groqcloud-09.png

which a quick test showed to work

builder@LuiGi:~$ cat test5.py
import secrets
import string

def generate_random_string(length):
    alphabet = string.ascii_letters + string.digits
    return ''.join(secrets.choice(alphabet) for _ in range(length))

random_string = generate_random_string(32)
print(random_string)

testing

builder@LuiGi:~$ python3 test5.py
HCQY8b7jMPzd59LP0H3d92kJBzKQ4MO0
builder@LuiGi:~$ python3 test5.py
KxikI9rVDqGqPKzi6plco2hPz6ivHHLr

Create an app

I prompted in the playground

create a small cross-platform application in javascript that displays a simple 25 minute countdown timer. it should allow the user to reset and play a sound and flash when the timer reaches 0.

The result (which was very very fast), looked to have me just create an HTML file, javascript and find my own MP3

/content/images/2025/02/groqcloud-12.png

I was able to launch in Firefox and show in a basic sense this would work

/content/images/2025/02/groqcloud-13.png

Deepseek R1

I tried Deepseek R1 and it gave me exactly what I hoped for (namely something in Electron)

/content/images/2025/02/groqcloud-14.png

At first I thought it would work

/content/images/2025/02/groqcloud-15.png

But it was just slow to launch

The big issue I see is no way to start it after resetting it.

Before I do, I’ll create a proper gitignore file and add to source as a first commit

nothing added to commit but untracked files present (use "git add" to track)
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git add -A
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git commit -m first
[main (root-commit) 5f3be6d] first
 6 files changed, 1027 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 index.html
 create mode 100644 main.js
 create mode 100644 package-lock.json
 create mode 100644 package.json
 create mode 100644 renderer.js

I updated the files based on the feedback

/content/images/2025/02/groqcloud-17.png

I see a start button

/content/images/2025/02/groqcloud-16.png

And when running I see it changed to stop

/content/images/2025/02/groqcloud-18.png

Going back to the initial R1 response, I’ll now set up the builder

$ npm install electron-builder --save-dev

Adding to package.json

    "build": "electron-builder"

I can now try building:

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ npm run build

> countdown-timer@1.0.0 build
> electron-builder

  • electron-builder  version=25.1.8 os=5.15.167.4-microsoft-standard-WSL2
  • description is missed in the package.json  appPackageFile=/home/builder/Workspaces/pomoApp/countdown-timer/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=34.0.1 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
  • packaging       platform=linux arch=x64 electron=34.0.1 appOutDir=dist/linux-unpacked
  • downloading     url=https://github.com/electron/electron/releases/download/v34.0.1/electron-v34.0.1-linux-x64.zip size=106 MB parts=8
  • downloaded      url=https://github.com/electron/electron/releases/download/v34.0.1/electron-v34.0.1-linux-x64.zip duration=14.394s
  • building        target=snap arch=x64 file=dist/countdown-timer_1.0.0_amd64.snap
  • building        target=AppImage arch=x64 file=dist/countdown-timer-1.0.0.AppImage
  • application Linux category is set to default "Utility"  reason=linux.category is not set and cannot map from macOS docs=https://www.electron.build/linux
  • default Electron icon is used  reason=application icon is not set
  • application Linux category is set to default "Utility"  reason=linux.category is not set and cannot map from macOS docs=https://www.electron.build/linux
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/snap-template-4.0-2/snap-template-electron-4.0-2-amd64.tar.7z size=1.5 MB parts=1
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z size=1.6 MB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/snap-template-4.0-2/snap-template-electron-4.0-2-amd64.tar.7z duration=777ms
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z duration=1.026s
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z size=1.6 MB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.1/appimage-12.0.1.7z duration=826ms
  • cannot move downloaded into final location (another process downloaded faster?)  path=/home/builder/.cache/electron-builder/appimage/appimage-12.0.1
                                                                                     tempFile=/home/builder/.cache/electron-builder/appimage/390661333
                                                                                     error=rename /home/builder/.cache/electron-builder/appimage/390661333 /home/builder/.cache/electron-builder/appimage/appimage-12.0.1: file exists
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ npm run build

> countdown-timer@1.0.0 build
> electron-builder

  • electron-builder  version=25.1.8 os=5.15.167.4-microsoft-standard-WSL2
  • description is missed in the package.json  appPackageFile=/home/builder/Workspaces/pomoApp/countdown-timer/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=34.0.1 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
  • packaging       platform=linux arch=x64 electron=34.0.1 appOutDir=dist/linux-unpacked
  • building        target=snap arch=x64 file=dist/countdown-timer_1.0.0_amd64.snap
  • building        target=AppImage arch=x64 file=dist/countdown-timer-1.0.0.AppImage
  • application Linux category is set to default "Utility"  reason=linux.category is not set and cannot map from macOS docs=https://www.electron.build/linux
  • default Electron icon is used  reason=application icon is not set
  • application Linux category is set to default "Utility"  reason=linux.category is not set and cannot map from macOS docs=https://www.electron.build/linux
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ ls dist/
builder-debug.yml  builder-effective-config.yaml  countdown-timer-1.0.0.AppImage  countdown-timer_1.0.0_amd64.snap  linux-unpacked

It only built for Linux and didn’t run in my WSL

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ ./dist/countdown-timer-1.0.0.AppImage
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information

In asking for other platforms like Mac and Windows, it did prompt me to install Wine

/content/images/2025/02/groqcloud-19.png

$ sudo apt-get install wine

In testing, I had to switch to root and add win32 Wine

dpkg --add-architecture i386 && apt-get update &&
    apt-get install wine32:i386

I got errors like the following when building

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ npm run build:windows

> countdown-timer@1.0.0 build:windows
> electron-builder --windows

  • electron-builder  version=25.1.8 os=5.15.167.4-microsoft-standard-WSL2
  • loaded configuration  file=package.json ("build" field)
  • description is missed in the package.json  appPackageFile=/home/builder/Workspaces/pomoApp/countdown-timer/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=34.0.1 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
  • packaging       platform=win32 arch=x64 electron=34.0.1 appOutDir=dist/win-unpacked
  • updating asar integrity executable resource  executablePath=dist/win-unpacked/countdown-timer.exe
  • default Electron icon is used  reason=application icon is not set
  ⨯ cannot execute  cause=exit status 53
                    errorOut=wine: could not load kernel32.dll, status c0000135

                    command=wine /home/builder/.cache/electron-builder/winCodeSign/winCodeSign-2.6.0/rcedit-ia32.exe /home/builder/Workspaces/pomoApp/countdown-timer/dist/win-unpacked/countdown-timer.exe --set-version-string FileDescription countdown-timer --set-version-string ProductName countdown-timer --set-version-string LegalCopyright 'Copyright © 2025 countdown-timer' --set-file-version 1.0.0 --set-product-version 1.0.0.0 --set-version-string InternalName countdown-timer --set-version-string OriginalFilename ''

Seems I just needed to reconfigure Wine

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ unset WINEPREFIX WINEARCH WINEPATH
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ wineserver -k
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ mv ~/.wine ~/.wine_backup
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ winecfg
wine: created the configuration directory '/home/builder/.wine'
0054:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
0054:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0054:err:ole:apartment_get_local_server_stream Failed: 0x80004002
0054:err:ole:start_rpcss Failed to open RpcSs service
004c:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
004c:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
004c:err:ole:apartment_get_local_server_stream Failed: 0x80004002
wine: configuration in L"/home/builder/.wine" has been updated.
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.

Now it built without error

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ npm run build:windows

> countdown-timer@1.0.0 build:windows
> electron-builder --windows

  • electron-builder  version=25.1.8 os=5.15.167.4-microsoft-standard-WSL2
  • loaded configuration  file=package.json ("build" field)
  • description is missed in the package.json  appPackageFile=/home/builder/Workspaces/pomoApp/countdown-timer/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=34.0.1 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
  • packaging       platform=win32 arch=x64 electron=34.0.1 appOutDir=dist/win-unpacked
  • updating asar integrity executable resource  executablePath=dist/win-unpacked/countdown-timer.exe
  • default Electron icon is used  reason=application icon is not set
  • signing with signtool.exe  path=dist/win-unpacked/countdown-timer.exe
  • no signing info identified, signing is skipped  signHook=false cscInfo=null
  • building        target=nsis file=dist/countdown-timer Setup 1.0.0.exe archs=x64 oneClick=true perMachine=false
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.1/nsis-3.0.4.1.7z size=1.3 MB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.1/nsis-3.0.4.1.7z duration=948ms
  • signing with signtool.exe  path=dist/win-unpacked/resources/elevate.exe
  • no signing info identified, signing is skipped  signHook=false cscInfo=null
  • downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z size=731 kB parts=1
  • downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z duration=684ms
  • signing with signtool.exe  path=dist/__uninstaller-nsis-countdown-timer.exe
  • no signing info identified, signing is skipped  signHook=false cscInfo=null
  • signing with signtool.exe  path=dist/countdown-timer Setup 1.0.0.exe
  • no signing info identified, signing is skipped  signHook=false cscInfo=null
  • building block map  blockMapFile=dist/countdown-timer Setup 1.0.0.exe.blockmap

Setup installed faster than I could capture the window with a screenshot tool

/content/images/2025/02/groqcloud-20.png

But I can see it installed into Windows

/content/images/2025/02/groqcloud-21.png

Lastly, here you can see it running as a native electron windows app

Pushing to Github

I’ll create a new repo in Github

/content/images/2025/02/groqcloud-23.png

I can then add the repo’s main branch and push it up to Github

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git remote add origin https://github.com/idjohnson/pomoTImer.git
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git push -u origin main
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 16 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 64.80 KiB | 9.26 MiB/s, done.
Total 14 (delta 4), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (4/4), done.
To https://github.com/idjohnson/pomoTImer.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

/content/images/2025/02/groqcloud-24.png

I’ll open this in VS Code and then configure Continue.dev to use the DeepSeek R1 model

    {
      "title": "Groq DS R1 70b",
      "model": "deepseek-r1-distill-llama-70b",
      "contextLength": 8192,
      "apiKey": "gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "provider": "groq"
    }

My first test is to ask it something I know it showed me earlier, the Github Actions flow, but I neglected to copy it down then (and my windows have cleared).

Using Github actions, build windows linux and mac binaries and shown them in the build output

/content/images/2025/02/groqcloud-25.png

Here you can see it used the full codebase for context to create a working Github Actions workflow

/content/images/2025/02/groqcloud-26.png

/content/images/2025/02/groqcloud-27.png

Now, I can see off-hand it’s not perfect. For instance, it suggested NodeJS 16.x (and we’ve been using later NodeJS 21.x)

That said, I’ll try with it’s suggestion first

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git add .github/workflows/build.yml
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git commit -m "Try with NodeJS 16.x"
[main 22ae4bc] Try with NodeJS 16.x
 1 file changed, 63 insertions(+)
 create mode 100644 .github/workflows/build.yml
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git push
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 744 bytes | 372.00 KiB/s, done.
Total 5 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/idjohnson/pomoTImer.git
   e4a5c4c..22ae4bc  main -> main

I added the build workflow and checked actions

Seems to have issues

/content/images/2025/02/groqcloud-28.png

It thinks there is no “build:windows”

/content/images/2025/02/groqcloud-29.png

Ah! I forgot to add the updated package.json

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git diff package.json
diff --git a/package.json b/package.json
index 86136d5..8396632 100644
--- a/package.json
+++ b/package.json
@@ -5,12 +5,30 @@
   "main": "main.js",
   "scripts": {
     "start": "electron .",
+    "build": "electron-builder",
+    "build:linux": "electron-builder --linux",
+    "build:windows": "electron-builder --windows",
+    "build:mac": "electron-builder --mac",
+    "build:all": "electron-builder --linux --windows --mac",
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   "keywords": [],
   "author": "",
   "license": "ISC",
-  "dependencies": {
-    "electron": "^34.0.1"
+  "devDependencies": {
+    "electron": "^34.0.1",
+    "electron-builder": "^25.1.8"
+  },
+  "build": {
+    "appId": "com.example.countdown-timer",
+    "files": [
+      "main.js",
+      "index.html",
+      "renderer.js",
+      "alarm.mp3"
+    ],
+    "directories": {
+      "output": "dist"
+    }
   }
 }

Let’s fix that and try again

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git add package.json
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git commit -m "add missing package.json"
[main 1f953f0] add missing package.json
 1 file changed, 20 insertions(+), 2 deletions(-)
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 607 bytes | 607.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/idjohnson/pomoTImer.git
   22ae4bc..1f953f0  main -> main

My new error (in all three builds) shows we are missing a token to upload

/content/images/2025/02/groqcloud-30.png

I tried following the feedback to add it to the flow as well as permissions and fetch level.

For whatever reason, ultimately I needed to add a PAT to the build step as well as upload

name: Build

on:
  push:
    branches: [ main ]

env:
  NODE_VERSION: '16.x'

jobs:
  build-windows:
    runs-on: windows-latest
    permissions:
      contents: read
      actions: read
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: $
      - name: Install dependencies
        run: npm install
      - name: Build Windows
        run: npm run build:windows
        env:
          GH_TOKEN: $
      - name: Upload Windows artifact
        uses: actions/upload-artifact@v3
        env:
          GH_TOKEN: $
        with:
          name: Windows
          path: dist/Countdown Timer Setup.exe

  build-linux:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      actions: read
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: $
      - name: Install dependencies
        run: npm install
      - name: Build Linux
        run: npm run build:linux
        env:
          GH_TOKEN: $
      - name: Upload Linux artifact
        uses: actions/upload-artifact@v3
        env:
          GH_TOKEN: $
        with:
          name: Linux
          path: dist/countdown-timer

  build-mac:
    runs-on: macos-latest
    permissions:
      contents: read
      actions: read
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: $
      - name: Install dependencies
        run: npm install
      - name: Build Mac
        run: npm run build:mac
        env:
          GH_TOKEN: $
      - name: Upload Mac artifact
        uses: actions/upload-artifact@v3
        env:
          GH_TOKEN: $
        with:
          name: Mac
          path: dist/Countdown Timer.dmg

And we can see that it did work this time

/content/images/2025/02/groqcloud-31.png

If we pay attention to the warnings, we can see that it couldnt find the binaries

/content/images/2025/02/groqcloud-32.png

I don’t need an AI to tell me why that is - clearly it didn’t account for the version in the upload step

/content/images/2025/02/groqcloud-33.png

Choco

First up, I want to make my app available to download. For Windows, the easiest way I know is choco and scoop. Let’s start with Chocolaty

I’ll make an API key in my Choco account

/content/images/2025/02/groqcloud-34.png

Which I can add as an Secret in the Repo

/content/images/2025/02/groqcloud-35.png

I then need to make a proper .nuspec

<?xml version="1.0"?>
<package>
  <metadata>
    <id>CountdownTimer</id>
    <title>Countdown Timer</title>
    <version>1.0.0</version>
    <authors>Isaac Johnson</authors>
    <owners>Isaac Johnson</owners>
    <description>A countdown timer application</description>
    <projectUrl>https://github.com/idjohnson/pomoTImer</projectUrl>
    <tags>countdown timer productivity pomodoro</tags>
  </metadata>
  <files>
    <file src="dist/countdown-timer-Setup-1.0.0.exe" target="tools/Countdown Timer Setup.exe" />
  </files>
</package>

I’ll also add a build and publish step to the GH Workflow

jobs:
  build-windows:
    runs-on: windows-latest
    permissions:
      contents: read
      actions: read
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: $
      - name: Install dependencies
        run: npm install
      - name: Build Windows
        run: npm run build:windows
        env:
          GH_TOKEN: $
      - name: Create Chocolatey package
        run: |
          nuget pack countdown-timer.nuspec -OutputDirectory dist
      - name: Upload Chocolatey package
        uses: actions/upload-artifact@v4
        with:
          name: Chocolatey
          path: dist/CountdownTimer.1.0.0.nupkg
        env:
          GH_TOKEN: $
      - name: Upload Windows artifact
        uses: actions/upload-artifact@v4
        env:
          GH_TOKEN: $
        with:
          name: Windows
          path: dist/*.exe
          overwrite: true
      - name: Push to Chocolatey
        uses: chocolatey-actions/publish@v1
        with:
          api-key: $
          package-path: dist/CountdownTimer.1.0.0.nupkg

I want to package a README.md.

I used Groq Lllama3.3 70B to create the README.md

/content/images/2025/02/groqcloud-36.png

I now have a functional build that pushes to Chocolaty

/content/images/2025/02/groqcloud-37.png

I can now see it pending review on the Chocolatey site

/content/images/2025/02/groqcloud-38.png

When (or if) it gets approved, I can install in powershell

choco install countdowntimer --version=1.0.0

New UI

I did ask for it to build a UI similar to Winamp

/content/images/2025/02/groqcloud-39.png

I had to tweak it (removing a broken image link), but honestly, the resulting app would be the most distracting thing ever if i was really using as a Pomodoro timer

/content/images/2025/02/groqcloud-39.png

As you can see in action

I asked to change that over to a progress bar:

Can you update that to show just a timer completion bar instead of an equalizer. It should slowly fill as the timer goes down until it reaches 0 and is totally filled up?

Which looks a lot better

/content/images/2025/02/groqcloud-41.png

I also had it tighten up the space (and then i changed up the window dimensions accordingly)

/content/images/2025/02/groqcloud-42.png

My last steps will be to update the versions in the build.yaml and nuspec then push a PR up to review

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git add .github/workflows/build.yml 
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git add countdown-timer.nuspec 
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git commit -m "change build and release versions to 1.1.0"
[winamp-idea d569cfe] change build and release versions to 1.1.0
 2 files changed, 3 insertions(+), 3 deletions(-)
builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git push
fatal: The current branch winamp-idea has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin winamp-idea

To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.

builder@LuiGi:~/Workspaces/pomoApp/countdown-timer$ git push --set-upstream origin winamp-idea
Enumerating objects: 29, done.
Counting objects: 100% (29/29), done.
Delta compression using up to 16 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (20/20), 3.44 KiB | 3.44 MiB/s, done.
Total 20 (delta 12), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (12/12), completed with 5 local objects.
remote: 
remote: Create a pull request for 'winamp-idea' on GitHub by visiting:
remote:      https://github.com/idjohnson/pomoTImer/pull/new/winamp-idea
remote: 
To https://github.com/idjohnson/pomoTImer.git
 * [new branch]      winamp-idea -> winamp-idea
branch 'winamp-idea' set up to track 'origin/winamp-idea'.

In a normal SW Development world, others would review the code for completeness. As it stands, I have PR1 which I’ll go ahead and merge myself

Choco feedback

I realized I should have waited. I can see some automated feedback from the Choco package manager

/content/images/2025/02/groqcloud-43.png

I can now see it is in the queue

/content/images/2025/02/groqcloud-44.png

The next morning I saw a notice that it passed Automated Validation and was awaiting a scan of some kind

/content/images/2025/02/groqcloud-45.png

That then linked me to a results GIST from choco-bot

/content/images/2025/02/groqcloud-46.png

You should be able to install with:

choco install countdowntimer --version=1.1.0

/content/images/2025/02/groqcloud-47.png

I have no idea what I’m doing wrong at this point. It pulled in the binary in a nupkg, but I don’t see it installed in my programs at all

/content/images/2025/02/groqcloud-48.png

If I renamed the extracted nuspec to zip, I can install from the “tools” folder in there

/content/images/2025/02/groqcloud-49.png

I feel I’m doing something wrong here. However, I can at least say I did install it, albeit circutiously, via nuget

/content/images/2025/02/groqcloud-50.png

Summary

We started out by signing up for Groqcloud and using the Playground to build a basic MVP. Quickly we setup the code locally so we could use the Groq connector in Continue.dev’s VS Code plugin.

The use of Deepseek R1 on Groq was amazing. It’s so fast that I’ll find it hard to use something else. I have yet to reach the end of my token limits with Groq and I’ll keep using it for personal / public work.

We not only built a functional cross-platform app, we set up builds in Github and deployments to a real package management provider, Chocolatey.

The next steps I would want is to have a selector to toggle between 25m and 5m breaks. Perhaps a drop down or something. I’m keen to keep this simple. I have found plenty of more complicated timers that are well intentioned, but the more that is “added”, the less this will actually get used (in my opinion).

Groq AI Ollama Continue VSCode

Have something to add? Feedback? You can use the feedback form

Isaac Johnson

Isaac Johnson

Cloud Solutions Architect

Isaac is a CSA and DevOps engineer who focuses on cloud migrations and devops processes. He also is a dad to three wonderful daughters (hence the references to Princess King sprinkled throughout the blog).

Theme built by C.S. Rhymes