diff --git a/src/autocomplete/Autocompleter.js b/src/autocomplete/Autocompleter.js
index 94d2ed28de..3d30363d9f 100644
--- a/src/autocomplete/Autocompleter.js
+++ b/src/autocomplete/Autocompleter.js
@@ -23,6 +23,7 @@ import DuckDuckGoProvider from './DuckDuckGoProvider';
import RoomProvider from './RoomProvider';
import UserProvider from './UserProvider';
import EmojiProvider from './EmojiProvider';
+import NotifProvider from './NotifProvider';
import Promise from 'bluebird';
export type SelectionRange = {
@@ -44,6 +45,7 @@ const PROVIDERS = [
UserProvider,
RoomProvider,
EmojiProvider,
+ NotifProvider,
CommandProvider,
DuckDuckGoProvider,
];
diff --git a/src/autocomplete/NotifProvider.js b/src/autocomplete/NotifProvider.js
new file mode 100644
index 0000000000..fb33d0061b
--- /dev/null
+++ b/src/autocomplete/NotifProvider.js
@@ -0,0 +1,63 @@
+/*
+Copyright 2017 New Vector Ltd
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import React from 'react';
+import AutocompleteProvider from './AutocompleteProvider';
+import { _t } from '../languageHandler';
+import MatrixClientPeg from '../MatrixClientPeg';
+import {PillCompletion} from './Components';
+import sdk from '../index';
+
+const AT_ROOM_REGEX = /@\S*/g;
+
+export default class NotifProvider extends AutocompleteProvider {
+ constructor(room) {
+ super(AT_ROOM_REGEX);
+ this.room = room;
+ }
+
+ async getCompletions(query: string, selection: {start: number, end: number}, force = false) {
+ const RoomAvatar = sdk.getComponent('views.avatars.RoomAvatar');
+
+ const client = MatrixClientPeg.get();
+
+ if (!this.room.currentState.mayTriggerNotifOfType('room', client.credentials.userId)) return [];
+
+ let completions = [];
+ const {command, range} = this.getCurrentCommand(query, selection, force);
+ if (command && command[0] && '@room'.startsWith(command[0]) && command[0].length > 1) {
+ return [{
+ completion: '@room',
+ suffix: ' ',
+ component: (
+