v1.0.0 — Latest Release

Android IDE.
No Bloat.
Just Build.

SabreTooth IDE is a lightweight, cross-platform Android development environment focused entirely on generating valid APKs. No layout editor, no Gradle sync wait, no 5-minute startup.

~108KB
JAR Size
0
Dependencies
3
Platforms
Java 21
Required
SabreTooth IDE — MyApp — MainActivity.java
Project
▾ 📁 MyApp
▾ 📁 app/src
▾ 📁 java
☕ MainActivity
☕ Utils
▾ 📁 res
📄 activity_main
📄 strings
📄 .sabreconf
📄 build.gradle
📄 settings.gradle
MainActivity.java ×
build.gradle
.sabreconf
1package com.example.myapp;
2
3import android.app.Activity;
4import android.os.Bundle;
5
6@Override
7public class MainActivity extends Activity {
8
9    @Override
10    protected void onCreate(Bundle state) {
11        super.onCreate(state);
12        setContentView(R.layout.activity_main);
13    }
14}
15// ▶ Debug APK [F10]

Everything you need.
Nothing you don't.

Built for developers who want to write Android code and build APKs without the overhead of a full IDE.

Instant Startup
Opens in under a second. No indexing, no Gradle sync, no waiting. Pure Java Swing — lightweight by design.
APK Focused
Every feature exists to help you build APKs. Debug and release builds, APK path detection, one-click open in file manager.
🔍
Auto Tool Detection
Automatically finds every Gradle installation, JDK, and Android SDK on your system. Dropdown selector per project.
📄
.sabreconf Files
Per-project config in a simple key=value format. Store SDK versions, Gradle path, keystore, extra args — commit it to git.
🎨
Syntax Highlighting
Java, Kotlin, XML, Groovy, Gradle, Properties — all highlighted with a clean dark theme. No external libraries needed.
🏗
Project Scaffolding
Create new Gradle or Eclipse-style Android projects with a full file structure, Manifest, activity, and layout in seconds.
🖥
Cross-Platform
One JAR runs on Windows, macOS, and Linux. Platform-specific launchers included for all three.
📂
Eclipse Projects
Understands Eclipse-style Android project structures alongside modern Gradle projects. Perfect for legacy code.
🔒
Release Signing
Configure keystore path and alias per project. Release builds use your signing config. Stored safely in .sabreconf.

Familiar. Focused.

An Android Studio-inspired layout you already know — minus everything you don't use.

FileEditView ProjectBuildToolsHelp
▶ Debug ▶ Release 🧹 Clean ⚔ SabreTooth IDE
▾ MyAndroidApp
▾ app
▾ src/main
AndroidManifest
▾ java
MainActivity
Utils
▾ res/layout
activity_main
.sabreconf
build.gradle
MainActivity.java
build.gradle
.sabreconf
1package com.example.myapp;
2
3import android.app.Activity;
4import android.os.Bundle;
5
6public class MainActivity extends Activity {
7
8  @Override
9  protected void onCreate(Bundle s) {
10    super.onCreate(s);
11    setContentView(R.layout.main);
12  }
13}
▶ Build / Run
[14:32:01] [SabreTooth] Starting: ASSEMBLE_DEBUG
[14:32:01] > Task :app:compileDebugJavaWithJavac
[14:32:04] ✓ BUILD SUCCESSFUL
[14:32:04] APK: app/build/outputs/apk/debug/app-debug.apk

Main IDE Window

Project tree · Tabbed editor · Console output

New Android Project
App Name:MyApp
Package:com.example.myapp
Min SDK:21 ▾
Gradle:gradle (8.4) ▾
Cancel Create →

New Project Wizard

Auto-detects installed Gradle & JDKs

Project Settings
Project Android Build Tools Signing
compileSdk:34
gradlePath:/usr/bin/gradle
androidJar:.../android-34/android.jar
extraArgs:--stacktrace

Project Settings

Per-project .sabreconf editor

↑ Have real screenshots? Add them at github.com/abraham-ny/Sabretooth-IDE

Up in 60 seconds.

No installer, no setup wizard. Download the JAR and go.

1
Download the JAR
Grab SabreTooth.jar from the latest GitHub release. It's under 110KB with zero external dependencies.
2
Run the launcher
Use the included shell script, batch file, or run the JAR directly. Requires Java 21+.
3
Open or create a project
File → New Project to scaffold a fresh Android project, or File → Open Project to open an existing Gradle or Eclipse-style project.
4
Configure build tools
SabreTooth auto-detects your Gradle and JDK installations. Confirm in Project Settings or let it use system defaults.
5
Build your APK
Press F10 for a debug build, or use Build → Build Debug APK. Watch the output in the console and open the APK folder when done.
Linux / macOS
$ chmod +x sabretooth.sh
$ ./sabretooth.sh
Windows
REM Double-click sabretooth.bat
REM or from command prompt:
> sabretooth.bat
Any Platform (Java 21+)
$ java --enable-preview \
      -jar SabreTooth.jar
Build from source
# Compile all sources
$ find src -name "*.java" > sources.txt
$ javac --enable-preview \
      --release 21 -d out @sources.txt

# Package into JAR
$ jar --create --file=SabreTooth.jar \
      --manifest=manifest.mf -C out .

The .sabreconf file.

Every project has a .sabreconf at its root. A simple key=value format you can commit to version control and edit by hand or via the UI.

[project]
Project name, package name, type (gradle/eclipse), and main activity class. These define how SabreTooth understands your project structure.
[android]
minSdk, targetSdk, compileSdk, versionCode, versionName. These are read and written by the New Project wizard and Project Settings dialog.
[build]
Paths to Gradle, JDK, and android.jar. Build type (debug/release), output directory, and any extra Gradle arguments like --stacktrace.
[signing]
Keystore path and key alias for release builds. Passwords are never stored — you'll be prompted by Gradle at build time.
.sabreconf example
# SabreTooth IDE Project Configuration

[project]
project.name = MyApp
project.package = com.example.myapp
project.type = gradle
android.mainActivity = MainActivity

[android]
android.minSdk = 21
android.targetSdk = 34
android.compileSdk = 34
android.versionCode = 1
android.versionName = 1.0

[build]
build.type = debug
build.gradlePath = /usr/bin/gradle
build.jdkPath = /usr/lib/jvm/java-21
build.androidJar = /Android/Sdk/platforms/android-34/android.jar
build.outputDir = build/outputs/apk
build.extraGradleArgs = --stacktrace

[signing]
sign.keystorePath = /path/to/release.jks
sign.keystoreAlias = mykey

Fast by default.

File
New FileCtrl N
New ProjectCtrl Shift N
Open FileCtrl O
Open ProjectCtrl Shift O
SaveCtrl S
Save AllCtrl Shift S
Close TabCtrl W
Build
Build Debug APKF10
Build Release APKShift F10
Clean BuildF9
Refresh File TreeF5
Find / ReplaceCtrl F
Font Size ±Ctrl + / Ctrl -
Undo / RedoCtrl Z / Ctrl Y

Clean architecture.
Zero dependencies.

Pure Java 21 + Swing. No external libraries. 19 source files, 40 compiled classes, one JAR under 110KB.

ui/
MainWindow.java
EditorTabPanel.java
CodeEditorPane.java
SyntaxHighlighter.java
ProjectTreePanel.java
ConsolePanel.java
NewProjectDialog.java
ProjectSettingsDialog.java
IdePreferencesDialog.java
FindReplaceDialog.java
MainToolbar.java
StatusBar.java
Theme.java
build/
BuildManager.java
Async Gradle runner. Streams output line-by-line. Cancellable. Finds APK path on success.
config/
SabreConf.java
IdePreferences.java
Reads/writes .sabreconf. IDE-wide prefs stored in ~/.sabretooth/ide.conf
project/ + util/
Project.java
ToolDetector.java
Project scaffolding for Gradle/Eclipse. Scans filesystem for all Gradle, JDK, Android SDK installations.
Latest: v1.0.0

Download SabreTooth IDE

Free. Open source. Always.

All Releases View Source Code
System Requirements
Java 21 or higher (JDK for building)
Gradle (any version, or use gradlew)
Android SDK with platform tools
Windows 10+, macOS 12+, or Linux
~15MB RAM at runtime
No internet connection required

Help make it better.

SabreTooth IDE is open source and welcomes contributions of all kinds — bug reports, features, docs, and funding.

🛠
Contribute Code
Fix bugs, add features, improve the syntax highlighter, or add new language support. Fork the repo, make your changes, and open a pull request.

Good first issues include: Kotlin syntax highlighting improvements, better XML formatter, find-in-files, and multi-root workspace support.
Fork on GitHub
🐛
Report Issues
Found a bug? Have a feature request? Open an issue on GitHub. Please include your OS, Java version, and steps to reproduce.

You can also star the repository to show support and help others discover the project.
Open an Issue
📖
Improve the Docs
Help write tutorials, improve the README, add example projects, or translate the documentation. Good documentation is what makes tools accessible to everyone.

Screenshots, usage guides, and video walkthroughs are especially welcome.
Edit the Wiki