You probably know when you typically code during the week, but it’s harder to get a sense of relative focus or intensity across different times during the day and different days of the week.
We track KPM (keystrokes per minute) as a proxy for coding focus and level of intensity. We track High KPM as a proxy for a state of high focus and heightened productivity. Our goal is to help you identify the times during the day when you naturally and repeatedly achieve flow (High KPM), so you can protect and expand those times to drive higher productivity.
We measure High KPM as any period of time when your keystroke rate exceeds your average KPM. Your average KPM is your rolling average KPM over the last 90 days. It is recalculated at the end of each day.
The status bar in your text editor or IDE shows two numbers: your KPM (keystrokes per minute) in your last recorded minute and your session time for your current session. We use the following icons to indicate your status:
The KPM count and rocket are subtle reminders of coding focus and intensity during sessions. The longer the rocket stays visible the higher your average KPM will be. Longer sessions are generally more productive, because you can maintain context and more easily retain logical constructs related to your code. Session time helps as a subtle reminder to try and target longer, more productive sessions (as opposed to short sessions with lots of interrupts).
Your software matters. We track the data behind your software to help you code smarter.
When you code offline, your data is temporarily stored in your data.json file in your .software folder. When you regain connectivity, we batch send data from this file to Software.com. You can check your last update time for each plugin in your session.json folder.
First of all, your code is safe! We never process, send, or store your code, and our plugins are designed to send only productivity related data. Our plugins are open source and public on GitHub. Our first product measures the activity in your text editor or IDE listed below:
You can see the data being sent every minute in the data.json file in the .software/ folder in your user directory.
We will never share your individual identifiable data. We aggregate anonymized data to help developers improve, so we can show how your data compares to groups, such as all developers using Software. When we combine data into teams or groups, we strip away all personal identifiable data (e.g. name, project names, etc.), unless it’s your data shown only to you.
Software is a developer-first company. Our platform is built for developers. We believe data should be used as a motivational tool to help individuals improve (as opposed to companies that provide management spyware).
In the future, we will provide features that enable you to share your data with whom you choose in a clear transparent way. But you will have full control.
You can read more on our About Us page.
Software collects data from your text editor or IDE and Google calendar to provide a range of insights that can help build productive habits. For instance, Software can help you identify natural times during the week when you achieve coding flow and set block times and reminders on your calendar to take advantage of those times. Software will automatically track how much you code during regular work hours versus nights and weekends, and can help you code more during regular work hours to achieve a happier work-life balance. Software can also help you track a range of weekly performance metrics, including coding time, total keystrokes, keystrokes per minute, lines of code, etc. to see if you are increasing or decreasing work volume week by week or month by month. Over time, we will provide even more data and value across developer tools.
Software is free for individuals and teams. For access to historical data beyond six months, modest data charges may apply (pricing will be determined after beta). In the future, we will provide enterprise features and pricing as well.
Software keeps all of your data, but only the most recent six months of data will be accessible for free accounts. You will be able to upgrade to a paid plan in the future, but paid plans are not yet available.
A session starts after your first keystroke after opening your text editor or IDE. After 30 minutes of inactivity or if you close your text editor or IDE, we will mark the end of your session time after your last recorded keystroke. A new session will begin if you start coding again after 30 minutes of inactivity, or if you reopen your text editor or IDE.
If you are having trouble installing your plugin, please follow these steps:
We are working on an open source program that will allow anyone to contribute to our plugin repositories. Please contact us at email@example.com if you would like to contribute.
Projects are created based on the project root directory that you open in your text editor or IDE. In the future, we will add support for capturing projects from .git files and renaming projects.
Software is accurate down to the second, and data is sent every minute. For instance, if you started typing at 4:56:17 PM, your first payload would be sent at 4:57:17 PM. In addition, your data is captured by file and by project. So, if you were working on two different files during the same minute, your activity would be recorded for both files individually.
Yes. Software works with multiple text editors or IDEs across multiple devices. See our plugin library here.
Yes, please contact us at firstname.lastname@example.org to download a copy of your data.
Yes, you have the option to delete your data under account management.