Almond

The Open, Privacy-Preserving Virtual Assistant

Almond translates your commands into a personalized program.

Brought to you by the Stanford Open Virtual Assistant Lab.

How Almond Works

See how Almond helps Kimmy babysit.

Learn how you can use Almond for your tasks.

Our Goal: Open Virtual Assistants for the Open Web

Virtual assistants are the new interface to the Web.
Our vision for virtual assistants includes:

Democratize AI for linguistic user interfaces

We should have open, collaborative research to put open-source linguistic technology in the hands of all businesses.

Learn more about our technology and how you can use it in your product.

An open non-proprietary linguistic web

All skills, or linguistic user interfaces, should be made available to any virtual assistant.

Learn more about our open repository and how you can contribute.

Sharing with individual data ownership

We as users should have a choice in virtual assistant services and the ability to control how we share our data.

Learn more about how you can run Almond with maximum privacy.

Almond In The News

What's new in Almond

The First Open Virtual Assistant Workshop

The First Open Virtual Assistant Workshop was held on October 30, 2019, as part of the Stanford HAI Symposium. The workshop gathered together people interested in this topic to share interests in the field, the state of the art, latest research, and to learn how to further develop the field.

Read more

Home Assistant State of The Union 2019 (Feat. Almond)

Home Assistant is the leading open-source IoT gateway, and Almond is now integrated with it. Almond powers the Home Assistant conversation support, also now has the ability to interact with dozens of different IoTs across hundreds of brands. This integration was announced at the Home Assistant State of the Union yearly conference on November 13th, and released on November 22nd.

Read more

This October: Make Four Pull Requests and Get A Free T-Shirt

We’re participating in Hacktoberfest this year to celebrate the open-source community.

Read more

More news...

What We Do

Programmable Notifications

Notifications are hard! Every website, every social network, every app is continuously competing for our attention. But that's no more: with Almond, you decide what you care about.

Commands in Almond can be monitored and filtered: you can specify to be notified whenever the result changes, when a certain condition is true, or only for a certain subset of the data. For example:

  • You can monitor the New York Times, and be notified when they publish a new article; or you can monitor just the articles with the word “Millennial”, so you know which industry is being killed now.
  • You can monitor the weather, or you choose to be notified only when the temperature is below 40 degrees, and it's time to bring in your dog.
  • You can monitor your work email, and then decide that, you know what, it's after hours, you don't want to be bothered.

Almond's conditions can make use of any result returned by a command, like the title of an article or the body of the new email. You can also use a command, and check if that satisfies a condition. Just specify your conditions in English, and let Almond notify you.

Example of a notification. The user says “Alert me when the price of Bitcoin is below $3,600”. Almond confirms, and then notifies, as the price of Bitcoin is now $3,500.

Flexible Compound Commands

Almond is the first virtual assistant that allows you to specify commands that combine two or more services at once. You can specify when to execute the command, what data to get, and what to do, and each part can be any of the primitives supported by Almond.

You can use compound commands for:

  • Automation: when I leave home, turn off the heating.
  • Synchronization: when I post to Twitter, copy the post to Facebook.
  • Composition: get the Bitcoin price and then send it to my colleague on Slack.
  • And many more!

If you have used IFTTT, you'll love Almond.

A Growing, Crowdsourced, Library of Services

Almond provides a uniform interface to your physical devices, your social network accounts, and many more services. Almond wants to let you access anything on the Internet, from your assistant.

Almond capabilities are defined in Thingpedia, a crowdsourced repository of commands and interfaces to online services and Internet of Things. Anyone can contribute new entries to Thingpedia, and with small amounts of training data, Almond will be immediately able to interact with the new device or service.

Learn more about Thingpedia and how you can help Almond learn new services and skills.

Icon for Nest Account
Icon for Slack
Icon for Twitter Account
Icon for Gmail Account
Icon for Spotify

Cutting-Edge Deep Learning Technology

Almond uses a state-of-the-art natural language understanding model. Almond's deep learning model allows it to understand more complex commands across more domains than any other assistant on the market: just train Almond with pairs of sentences and programs, and Almond will learn.

We are continuously improving Almond, and building tools to allow others to extend Almond. We have developed a tool called Genie that allows to generate training data in new domains from scratch. Using Genie, we have found that Almond understands user's input with 68% accuracy - a marked improvement over the previous best known result. Furthermore, with little effort we were able to build a specialized skill for Spotify, add natural language to access control, and extend Almond with aggregates (sum, count, average, etc.).

As academics, our research is open-source, and all technology is freely available to the public. Anyone can leverage our algorithm in their product or in their own research. Learn more about our research and how you can use Almond's technology.

What can Almond do?

Here is a sample of what Almond can do, and a few commands that our users and developers think are interesting. It is not an exhaustive list! Commands can combined in arbitrary ways, creating endless possibilities for your assistant.