Top Related Projects
Clone to try a simple Electron app
Make any web page a desktop application
:electron: A complete tool for building and publishing Electron applications
Explore the Electron APIs
A Foundation for Scalable Cross-Platform Apps
➖ high level way to create menubar desktop applications with electron
Quick Overview
Anatine is a desktop Twitter client built with Electron, offering a sleek and customizable interface for Twitter users. It aims to provide a more feature-rich and efficient Twitter experience compared to the web interface, while maintaining a clean and intuitive design.
Pros
- Cross-platform compatibility (Windows, macOS, Linux)
- Customizable interface with various themes and layout options
- Enhanced features not available in the web version, such as keyboard shortcuts and multiple account support
- Regular updates and active community support
Cons
- Requires installation and takes up more system resources compared to using Twitter in a browser
- May be affected by Twitter API changes or limitations
- Some users may prefer the official Twitter app for consistency across devices
- Limited to desktop use, not available on mobile platforms
Getting Started
To get started with Anatine:
- Visit the GitHub repository: https://github.com/sindresorhus/anatine
- Download the latest release for your operating system
- Install the application following the instructions for your platform
- Launch Anatine and log in with your Twitter account
- Explore the settings to customize the interface and features to your liking
Note: As of my knowledge cutoff in September 2021, the Anatine project may have been discontinued or renamed. Please check the repository for the most up-to-date information and alternative recommendations if necessary.
Competitor Comparisons
Clone to try a simple Electron app
Pros of minimal-repro
- Designed specifically for creating minimal reproducible examples for Electron issues
- Simpler structure, making it easier to isolate and demonstrate specific problems
- Includes clear instructions for creating and submitting reproductions
Cons of minimal-repro
- Limited functionality, not suitable for full-fledged applications
- Lacks advanced features and customization options found in Anatine
- May require more setup for complex scenarios compared to Anatine's ready-to-use structure
Code Comparison
Anatine (main process):
app.on('ready', () => {
mainWindow = createMainWindow();
tray.create(mainWindow);
Menu.setApplicationMenu(appMenu);
});
minimal-repro (main process):
app.whenReady().then(() => {
createWindow();
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
});
Both repositories use Electron to create desktop applications, but Anatine is a full-featured Twitter client, while minimal-repro is a barebones template for reproducing issues. Anatine includes more complex features like tray integration and custom menus, whereas minimal-repro focuses on providing a clean slate for isolating and demonstrating specific Electron-related problems.
Make any web page a desktop application
Pros of Nativefier
- More versatile: Can create desktop apps from any website, not limited to Twitter
- Cross-platform support: Works on Windows, macOS, and Linux
- Actively maintained with regular updates and improvements
Cons of Nativefier
- Less specialized: Doesn't offer Twitter-specific features like Anatine
- Larger app size: Generated apps may be bulkier than purpose-built alternatives
- Potential performance overhead due to Electron wrapper
Code Comparison
Anatine (Twitter-specific functionality):
export function handleNewTweets(tweets) {
for (const tweet of tweets) {
if (tweet.isRetweet) {
handleRetweet(tweet);
} else {
renderTweet(tweet);
}
}
}
Nativefier (Generic web app creation):
const nativefier = require('nativefier').default;
nativefier({
name: 'My App',
targetUrl: 'https://example.com',
platform: 'darwin',
arch: 'x64',
out: '/path/to/build'
}, function(error, appPath) {
if (error) {
console.error(error);
return;
}
console.log('App has been nativefied to', appPath);
});
While Anatine focuses on Twitter-specific functionality, Nativefier provides a more general-purpose solution for creating desktop applications from web content. Anatine offers a more tailored experience for Twitter users, while Nativefier allows for greater flexibility in creating desktop apps from various web sources.
:electron: A complete tool for building and publishing Electron applications
Pros of Forge
- More comprehensive toolset for Electron app development
- Active maintenance and regular updates
- Extensive documentation and community support
Cons of Forge
- Steeper learning curve for beginners
- Potentially more complex setup for simple projects
- Larger project footprint due to additional features
Code Comparison
Anatine (main process):
app.on('ready', () => {
mainWindow = createMainWindow();
tray.create(mainWindow);
menu.set(mainWindow);
});
Forge (main process):
app.on('ready', () => {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
mainWindow.loadFile('index.html');
});
Anatine focuses on a streamlined approach for creating a Twitter client, while Forge provides a more robust framework for general Electron app development. Anatine's code is more specific to its use case, whereas Forge's example demonstrates a more generic setup for Electron applications.
Forge offers more flexibility and tools for various types of Electron projects, making it suitable for a wider range of applications. However, this comes at the cost of increased complexity and a potentially steeper learning curve compared to Anatine's more focused approach.
Explore the Electron APIs
Pros of electron-api-demos
- Comprehensive showcase of Electron API features
- Well-structured and documented codebase
- Actively maintained with regular updates
Cons of electron-api-demos
- Larger project size and complexity
- Focused on demonstration rather than practical application
- May require more setup time for new users
Code Comparison
electron-api-demos:
const { app, BrowserWindow } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html')
}
Anatine:
const electron = require('electron');
const config = require('./config');
const app = electron.app;
function createMainWindow() {
const win = new electron.BrowserWindow({
title: app.getName(),
show: false,
width: 500,
height: 600
});
return win;
}
Both projects use Electron to create desktop applications, but electron-api-demos focuses on demonstrating various Electron APIs, while Anatine is a practical implementation of a Twitter client. The code snippets show similarities in window creation, but Anatine's approach is more tailored to its specific use case.
A Foundation for Scalable Cross-Platform Apps
Pros of electron-react-boilerplate
- Comprehensive boilerplate with a well-structured project setup
- Includes TypeScript support out of the box
- Offers a more robust development environment with hot reloading and testing tools
Cons of electron-react-boilerplate
- Larger initial project size due to included dependencies and tools
- Steeper learning curve for beginners due to its comprehensive setup
- May require more configuration for simpler projects
Code Comparison
electron-react-boilerplate:
import { MemoryRouter as Router, Routes, Route } from 'react-router-dom';
import './App.css';
export default function App() {
return (
<Router>
<Routes>
<Route path="/" element={<Hello />} />
</Routes>
</Router>
);
}
Anatine:
const electron = require('electron');
const config = require('./config');
const app = electron.app;
function createMainWindow() {
const win = new electron.BrowserWindow({
title: app.getName(),
show: false,
width: 600,
height: 400
});
}
The code snippets highlight the different approaches: electron-react-boilerplate uses React Router for navigation, while Anatine focuses on creating an Electron window. electron-react-boilerplate's setup is more complex but offers greater flexibility for larger applications, whereas Anatine's approach is simpler and more straightforward for smaller projects.
➖ high level way to create menubar desktop applications with electron
Pros of menubar
- Simpler and more focused on creating menubar apps
- Lighter weight with fewer dependencies
- More actively maintained with recent updates
Cons of menubar
- Less feature-rich compared to Anatine
- Limited to menubar functionality, while Anatine is a full Twitter client
- May require more custom code for advanced features
Code Comparison
Anatine (main app structure):
const electron = require('electron');
const config = require('./config');
const tray = require('./tray');
const app = electron.app;
app.on('ready', () => {
electron.Menu.setApplicationMenu(appMenu);
mainWindow = createMainWindow();
tray.create(mainWindow);
});
menubar (main app structure):
const menubar = require('menubar');
const mb = menubar({
dir: __dirname,
index: `file://${__dirname}/index.html`,
icon: `${__dirname}/Icon.png`,
width: 400,
height: 400
});
mb.on('ready', () => {
console.log('Menubar app is ready');
});
The code comparison shows that menubar provides a more streamlined approach to creating menubar apps, while Anatine requires more setup for a full-featured application. menubar's API is more focused on the specific task of creating a menubar app, whereas Anatine's code structure is more complex due to its broader functionality as a Twitter client.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Deprecated
Me and others put a lot of work into this project to make the Mobile Twitter site great as a desktop app. I've chosen to deprecate it now, as it's impossible to keep up with the Mobile Twitter ever changing React class names. I don't have time to update a bunch of CSS-selectors every other week. Thanks for all the fish.
Happy to let anyone else take over if interested.
Anatine 
Pristine Twitter app
This app is based the awesome Mobile Twitter site, but modifies a lot of things and makes it more usable on the desktop.
Features
Dark mode
You can toggle dark mode in the Anatine
menu or with Cmd Shift D / Ctrl Shift D.

Background behavior
When closing the window, the app will continue running in the background, in the dock on macOS and the tray on Linux/Windows. Right-click the dock/tray icon and choose Quit
to completely quit the app. On macOS, click the dock icon to show the window. On Linux, right-click the tray icon and choose Toggle
to toggle the window. On Windows, click the tray icon to toggle the window.
Keyboard shortcuts
- New tweet: n
- New DM: m
- Send tweet/DM: Cmd Enter or Ctrl Enter
- Go to Home: g h or Ctrl 1 or Cmd 1
- Go to Notifications: g n or Ctrl 2 or Cmd 2
- Go to Messages: g m or Ctrl 3 or Cmd 3
- Go to Search: / or Ctrl 4 or Cmd 4
- Go to Profile: g p or Ctrl 5 or Cmd 5
- Go to Likes: g l
- Go to Lists: g i
- Go to previous page: Delete or Backspace
- Next tab: Ctrl Tab
- Previous tab: Ctrl Shift Tab
- Go to next tweet: j
- Go to previous tweet: k
- Go to next photo: â
- Go to previous photo: â
- Page down: Ctrl d
- Page up: Ctrl u
- Scroll to top: g g
- Scroll to bottom: G
Install
macOS 10.9+, Windows 7+ & Linux are supported.
macOS
Homebrew Cask
$ brew update && brew cask install anatine
Manually
Download, unzip, and move Anatine.app
to the /Applications
directory.
Linux

Download and unzip to some location.
To add a shortcut to the app, create a file in ~/.local/share/applications
called anatine.desktop
with the following contents:
[Desktop Entry]
Name=Anatine
Exec=/full/path/to/folder/Anatine
Terminal=false
Type=Application
Icon=/full/path/to/folder/Anatine/resources/app/static/Icon.png
Snap package
$ sudo snap install anatine
Windows

Download and unzip to some location.
Dev
Built with Electron.
Commands
- Init:
$ npm install
- Run:
$ npm start
- Build macOS:
$ npm run build:macos
- Build Linux:
$ npm run build:linux
- Build Windows:
$ npm run build:windows
- Build all:
$ brew install wine
and$ npm run build
(macOS only)
Related
- Refined Twitter - Chrome extension of this app
- Caprine - Facebook Messenger app
Created by
License
MIT © Sindre Sorhus
Top Related Projects
Clone to try a simple Electron app
Make any web page a desktop application
:electron: A complete tool for building and publishing Electron applications
Explore the Electron APIs
A Foundation for Scalable Cross-Platform Apps
➖ high level way to create menubar desktop applications with electron
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot