A custom, local Cortana client built with Electron, inspired by the classic design and functionality of Microsoft's original assistant.
We are not affiliated with Microsoft! We do not own the licenses for Cortana. This is just a faithful recreation project.
As a kid, my Nana got me into tech. What was one thing she let me do? Talk to Cortana. She had a whole Microphone setup for Cortana. I miss those days, and I want Cortana back. (I love you Nana!) ... So, I decided to try and work on bringing Cortana back, the way I remember.
- TTS Responses: Utilizes the built-in system Text-to-Speech engine (like Windows Zira) to speak responses.
- Bing Web Search: Opens a mobile-formatted Bing search in an integrated webview for general queries.
- Built-in Skills:
- Weather Forecast: Ask "weather in (City name!)" to get current conditions.
- Calculator: Type any simple math equation to get a quick answer. (An example would be: 8*8)
- Time Lookup: Ask for the time locally ("What time is it?") or in any major city ("Time in Tokyo", "Time in CST").
- Jokes: Because every assistant needs some jokes. C'mon. (Local-only set of jokes that'll be expanded on over time.)
- Reminders: Cortana can remind you to do things.
- More: Cortana can launch applications for you. Cortana can tell you the day.
- Other: Cortana can also give you a drumroll! (Drumroll please?)
- Electron
- HTML5
- CSS3
- Vanilla JavaScript
If you want Cortana to be able to speak, make sure you have one or more languages with Speech installed in the Windows computer. Cortana's TTS is Microsoft Zira and will be the default if you have it available. If not, it'll choose whatever you have. You may change this in Cortana's settings pane.
You must have Node.js installed on your system (which includes npm).
- Clone the repo:
git clone https://github.com/SoftBluey/Cortana-Electron - Navigate to the project directory:
cd cortana-electron - Install NPM packages:
npm install - Run the app in development mode:
npm start
To create a distributable .exe installer for Windows, run the following command:
npm run dist