Yaak Logo
Yaak

Directory Sync, Git, WebSockets, and OAuth

2025.1.1

At the start of the year, I sent out a short survey which got over 200 responses! My goal was to discover blockers for adoption, and it came down to just a few missing features… So, I implemented them all.

I’m coining this 2025.1 release “Yaak 2.0” because, in my head, there are no longer any major reasons to use anything else.

Yes, it looks the same as befor

📂 Directory Sync

Until now, data created within Yaak was trapped in a local SQLite database, which made it difficult to back up and share workspaces.

Now, you can optionally configure a data folder for each workspace:

  • Changes within Yaak will be written to the directory as YAML
  • Changes to the YAML will update the data in Yaak
Changed files confirmation

Modified/deleted filesystem changes will show a confirmation

This makes it trivial to integrate your Yaak workflow with Git, DropBox, or any other tool that works with plain-text files.

Since this is technically a sync system, there’s a bunch of other things I’d like to add in the future like the ability to ignore folders, encrypt data, or even swap out backends (custom S3 bucket?). If you have ideas, please shout them out on the Feedback Forum.

See also: feedback

🎋 Integrated Git UI

Directory sync enabled integration with tools like Git, but wouldn’t it be nice if you didn’t have to use the terminal to commit changes? Good news! This release also includes an integrated Git UI to help branch, commit, and push changes.

There are still a few things missing, like https remote support, so look forward to future improvements.

Git commit dialog

Confirmation for when changed files will modify or delete dat

🔌 WebSocket Support

One of Yaak’s core goals is to be able to work with any API. Websockets was one of the most voted-on features, and I’m so glad that it’s finally here!

Git commit dialog

Sending JSON messages to a websocket serve

See also: feedback

🔐 OAuth 2.0, JWT, and auth plugins

Continuing the theme of being able to work with any API, Yaak now supports OAuth 2.0 and JWT.

But here’s the real big news: All auth is now implemented as plugins, meaning you can make your own.

OAuth 2.0 authentication window

Authenticating OAuth user in a separate windo

🚀 Performance++

Many parts of Yaak’s ReactJS frontend were overhauled to remove any slowdowns caused by working with a large number of requests (in the 100s). Yaak should now stay snappy and responsive, no matter what you’re working on.

🤓 Vim Mode

I heard you use Vim. So do I, btw.

Vim keybinding setting

Setting to change the keymap for all input field

See also: feedback

Wrap Up

I just want to close by saying thank you to everyone who filled out the survey, submitted feedback, purchased a license, or participated in any other way. I’m so happy with how far Yaak has come since launching just over a year ago, and I’m so excited for what’s next.

Thanks again,

~ Greg

Other fixes and improvements

🎁 New

  • Support TLS 1.3
  • Support SVG response preview
  • Add analytics to the Settings window
  • Support dashes in variable names(feedback )

🛠️ Fixed

  • Fix split layout sometimes not working
  • Fix incorrect selected workspace for data export
  • Fix pressing enter in command palette
  • Fix Control-Tab hotkey on Linux and Windows to switch recent requests

💄 Improved

  • Request/Folder/Workspace descriptions(feedback )
  • Preserve editor history for all inputs
  • Option to omit environments from data export
  • Order workspaces, cookie jars, and environments by name
  • Emacs, and VSCode keymaps
  • Duplicate Folders(feedback )
  • Menus now use “click away” instead of a backdrop
  • Backspace to delete selected request in sidebar
  • Gruvbox theme(feedback , #140 )
  • Move base environments out of workspace (visible in data export)
  • Button to open logs and data directories from app settings
  • Multi-Part mime for text fields(feedback )
  • Multi-line editing for multi-part form values
  • Align sidebar request names(feedback )
  • Text selection during request rename(feedback )
  • Out of memory on large responses(feedback )
  • Prevent showing context menu inside context menu
  • Force single-instance of app (useful for some Linux environments)