The Stanford Open Virtual Assistant Project

Almond translates your commands into a personalized program.




Open To All

Our Goal: an Open, Interoperable, Linguistic Web

Virtual assistants are the new interface to the Web.
We want them to have:

Open Competition

Any company should be able to participate and innovate, without privileging existing monopolies.


Users should be able to define their own tasks, without learning complex programming languages.


Users should control who has access to their data, for what purpose, and with whom their data is shared.


New services, new devices should be easy to add, and by anyone. This supports technological innovation.

Learn More - Watch prof. Lam's keynote at Mobicom 2018 (Slides)

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 Slack
Icon for Uber
Icon for Nest Account
Icon for Spotify
Icon for Gmail Account
Icon for Twitter Account

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 collaborate with professors from Stanford Natural Language Processing research group, one of the world's leading hubs for NLP research, to continuously improve Almond. In our experiments, we have found that Almond understands user's input with 88% accuracy, provided that sufficient training data is provided. This is marked improvement over the previous best known result, which would achieve a mere 64%.

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's new in Almond

Building a Language User Interface? Let Genie Generate It For You!

How do you teach your brand new virtual assistant to understand language? How do you represent the user's input? How do you acquire training data cheaply, before you have users at all? To answer these questions, we present our latest paper, "Genie: A Generator of Natural Language Semantic Parsers for Virtual Assistant Commands" (PLDI 2019).

Read more

Winter Updates in Almond Land

It's midterm season, but the Almond team won't be distracted. We're proud to present a new round of updates, including our new community forum, opening up developer access to Thingpedia broadly, and a preview of our latest, state-of-the-art natural language understanding technology.

Read more

Keynote: Giving Control Back to Consumers with Open Federated Virtual Assistants

Prof. Monica Lam was invited to give a keynote at HiPEAC 2019, one of the premier international academic conferences for computer systems and computer architectures.

Read more

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.