Vale Server now works with Gmail, GitHub, Medium,, WordPress, Confluence, … and more!

When I launched Vale Server last year, supporting browsers and other web-based applications was one of the primary goals. The initial release included support for Chrome, but there were still a lot of details that needed to be figured out.

The extension has since been completely re-written to better support the features and ideals of Vale Server — specifically, the extension:

  • Respects your data. It only requests the most basic of permissions and is entirely warning-free according to Chrome (a very rare distinction among writing-related extensions).
  • Is unintrusive by design. It doesn’t interfere with the structure (DOM) of websites you…

A regex revamp, spaCy-powered NLP, and a much-improved onboarding experience.

Almost exactly two years ago, I announced the v1.0 release of Vale. And a lot has happened since then: I’ve made over 70 individual releases (including a second major version), launched a desktop application, and watched Vale’s community grow dramatically.

Vale has been downloaded over 200,000 times, and is actively helping writers across hundreds of projects — including linode/docs, spotify/backstage, cockroachdb/docs, Homebrew/brew, writethedocs/www, github/codeql, netlify/netlify-cms, gitlab-org/gitlab, and eclipse/che-docs.

🌟 If you’d like to learn more about how Vale is being used, Buildkite, Linode, Pronovix, Tag1, Drupalize.Me, and Umbraco have detailed how they incorporate it into their workflows.

Through all of…

Client updates, an action re-write, and more LanguageTool integration improvements.

The latest development cycle for Vale Server focused almost entirely on in-editor performance with the specific goal of improving the on-the-fly linting experience.

Actions get a re-write

The first change you’ll notice in v1.8 is that the action-processing engine has been completely re-written from Python to Go, incorporating many performance enhancements along the way.

A comparison of action response times between v1 (Python) and v2 (Go).

Overall, the re-write allowed Vale Server to see an average decrease in response time of around 80.6%.

In addition to the performance gains, the new action-processing engine is going to see a number of general purpose feature additions in the next few releases — including the ability to manage Vale…

A guide to creating regex-based rules for Vale and Vale Server.

An example rule from Vale’s style for the Microsoft Writing Style Guide.


In this post, we’ll take a look at the process of writing new rules for Vale (the command-line tool) and Vale Server (the desktop application). The goal for this post is to supplement the existing documentation by covering possible areas of confusion and potential “gotchas.”

But first, we need to define a few terms that you’ll encounter throughout this post and other documentation:

  • Vale: An open-source, command-line tool that brings code-like linting to prose.
  • Check: Vale’s functionality is exposed through extensible “checks” that perform abstract tasks such as checking the length of certain text segments (such as sentences and paragraphs)…

A re-designed Dashboard, including a new rule editor with built-in regex101 integration.

Vale Server’s new Studio page

I’m pleased to announce v1.4 of Vale Server today, the fourth major release of Vale’s desktop application. Development for v1.4 was almost entirely focused on improving the Dashboard, including the new Studio page.

Vale Studio [beta]

One of Vale’s most popular features is its support for YAML-based rules, which allow for a high degree of customization and extensibility without requiring any programming experience. The new Studio dashboard page leverages the machine-readable nature of these YAML files to offer a suite of validation and debugging tools.


At the most basic level, Vale Studio will warn about “malformed” rules — such as those with YAML…

LanguageTool, Rule Actions, updated clients, and more!

A demo of Vale Server’s VS Code extension

The past few months have been quite busy in terms of Vale and Vale Server development, I’ve released Vale v2.0.0-beta, Vale Server v1.2, and new versions of the Atom, Sublime Text, and Visual Studio Code clients.

Today I’m here to announce yet another new release, Vale Server 1.3, which builds off of a bunch of work that’s been done with Vale v2.0.0 and the new text editor clients.

LanguageTool Integration

While Vale Server is primarily concerned with enforcing certain writing styles, the ability to provide grammar-related suggestions has been a popular feature request. v1.3 …

A tutorial on linting your OpenAPI Specification files

OpenAPI Specification files provide machine-readable (JSON or YAML) descriptions of APIs and often contain snippets of text suitable for linting.

The problem is that the target text can be hard to reach from a linting perspective. For instance, consider the following basic example:

As you can see above, the only parts we’re really interested in are the title, description (which can contain Markdown), and summary keys.

In the following sections, we’ll discuss the three main techniques for linting specification files using Vale (an open-source linter for prose). For the examples, we’ll be referencing the petstore.yaml file from Swagger.

Option 1: No Processing

An introduction to common Vale (Server) workflows and use cases.

A screenshot of the Vale Server v1.3 dashboard

With Vale rapidly approaching v2.0.0 and the release of the Vale Server desktop app, the amount of possible workflows and use cases is at an all-time high. For the sake of this post, we’ll be focusing on the two basic classes of use cases:

  • Remotely: Remote usage typically involves running Vale on a virtual machine through a Continuous Integration (CI) service.
  • Locally: Local usage typically involves using one of Vale’s editor plugins to provide on-the-fly linting of your content.

The goal is to cover the basic details of each workflow type and provide some general best practices. However, there’s no…

Vale Server is a desktop application that brings your editorial style guide to life.

A control flow diagram of Vale Server’s functionality

Almost two months ago, I announced that Vale was coming to the desktop. The goal was simple: move away from the command-line environment, while making it easier to manage Vale-related files and folders.

In this post, I’ll discuss the progress I’ve made and the new features (and enhancements) you can make use of in your writing workflow.

Vale Server 101

Vale Server is a cross-platform (currently available for macOS and Windows; Linux is on its way) desktop application that helps you “codify” editorial guidelines.

Introducing Vale Server, a native desktop app for Vale

Vale Server running on macOS

8 months ago, I released the first stable version of Vale. Since then, I’ve shifted my focus to bringing Vale’s command-line functionality to a native desktop application. This post will discuss some of the enhancements and refinements that have been implemented along the way.


Vale Server maintains Vale’s high standards for performance and privacy. It consists of three components:

  • A cross-platform GUI layer written in C++, allowing the app to appear as native as possible without having to maintain multiple codebases;
  • a platform-specific OS interaction layer that makes use of native APIs (e.g., Cocoa on macOS); and
  • an embedded HTTP…

Joseph Kato

An open-source software developer with interests in natural language processing, data science, and collaborative writing. More @

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store