Skip to content
Skills Library
Programming · Building & coding

dev-environment-setup

/dev-environment-setup

Complete Morphe development environment setup — prerequisites, cloning repos, gradle auth, IDE config, build commands. Use when setting up a new dev environment or troubleshooting build/auth issues.

Repository
morphe-ai ↗
Licence
GPL-3.0
Last repository change
29.09.2026

Assessment and security

95/ 100Class: good
Format20 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
5
Deprecation

No signals detected. Repository changed on 29.09.2026, without references to retired models or APIs.

Licence

GPL-3.0, otwarta.

What it does and when to use it

Complete Morphe development environment setup — prerequisites, cloning repos, gradle auth, IDE config, build commands. Use when setting up a new dev environment or troubleshooting build/auth issues.

Original author description

Complete Morphe development environment setup — prerequisites, cloning repos, gradle auth, IDE config, build commands. Use when setting up a new dev environment or troubleshooting build/auth issues.

How it works

  1. Prerequisites
  2. Quick Install (analysis tools)
  3. GitHub Auth
  4. Clone Repos
  5. Gradle Plugin Config
  6. Build Commands
  7. Signing Key
  8. Troubleshooting
Original SKILL.md headings · 120 lines, 480 words
SKILL.md preview
---
name: dev-environment-setup
description: Complete Morphe development environment setup — prerequisites, cloning repos, gradle auth, IDE config, build commands. Use when setting up a new dev environment or troubleshooting build/auth issues.
---

# Morphe Development Environment Setup

## Prerequisites

- **JDK 21** recommended for development (aligns with template CI). JDK 17 is the stated
  minimum in the desktop source, but JDK 21 gives a unified workspace/CI toolchain.
- **JRE 21+** required to run the CLI (`morphe-cli.jar`).
- Android reverse engineering tools for analysis: jadx, baksmali (local analysis/tests only —
  patch builds use the patcher's own pinned baksmali/smali fork, not the distro package)
- ripgrep (rg) for fast code search
- GitHub CLI (gh) for auth and releases
- Python tools via uvx: apkid, androguard

> **Note:** `baksmali`/`smali` from apt is fine for local DEX analysis and manual smali reading.
> It is **not** used during `./gradlew buildAndroid` — the Gradle plugin uses its own pinned fork.

## Quick Install (analysis tools)

```bash
sudo apt install -y openjdk-21-jdk jadx libsmali-java apktool aapt ripgrep adb dex2jar gh
# Python tools — no install needed, uvx runs latest version
# uvx apkid app.apk
# uvx androguard analyze -i app.apk
```

## GitHub Auth

```bash
gh auth login
TOKEN=$(gh auth token)
mkdir -p ~/.gradle
cat > ~/.gradle/gradle.properties << EOF
gpr.user = <GitHub username>
gpr.key = $TOKEN
EOF
```

## Clone Repos

```bash
mkdir morphe && cd morphe
# Template for creating custom patches
git clone https://github.com/MorpheApp/morphe-patches-template
# Optional: clone official patches for reference
git clone https://github.com/MorpheApp/morphe-patches
git clone https://github.com/MorpheApp/morphe-patcher
```

The CLI binary (`morphe-cli.jar`) is downloaded by `./setup-cli.sh` — no need to build
`morphe-desktop` locally.

## Gradle Plugin Config

`settings.gradle.kts` (template already has this configured):
```kotlin
pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        maven {
            name = "GitHubPackages"
            url = uri("https://maven.pkg.github.com/MorpheApp/registry")
            credentials {
                username = providers.gradleProperty("gpr.user").orNull ?: System.getenv("GITHUB_ACTOR")
                password = providers.gradleProperty("gpr.key").orNull ?: System.getenv("GITHUB_TOKEN")
            }
        }
        maven { url = uri("https://jitpack.io") }
    }
}
plugins { id("app.morphe.patches") version "1.3.4" }
```

`patches/build.gradle.kts`:
```kotlin
group = "app.mypatches"
patches {
    about {
        name = "My Patches"
        description = "Custom patches"
        source = "git@github.com:user/repo.git"
        author = "Author"
        contact = "na"
        website = "na"
        license = "GPLv3"
    }
}
```

Extension `build.gradle.kts`:
```kotlin
extension { name = "extensions/extension.mpe" }
android { namespace = "app.morphe.extension" }
```

## Build Commands

```bash
# Build patches → patches/build/libs/patches-<version>.mpp
PATCHES_DIR="${MORPHE_PATCHES_DIR:-morphe-patches}"
cd "${PATCHES_DIR}" && ./gradlew buildAndroid
```

## Signing Key

The CLI uses the resolved data-root `morphe.keystore` by default. It is stable for desktop
runs but is not automatically the same key stored by Morphe Manager on a phone. No project-root
keystore is required.

To share an identity, export/import the key or pass the same custom `--keystore <path>`. BKS,
PKCS12, and JKS inputs are supported; PKCS12/JKS are converted to a copy and the source is unchanged.

## Troubleshooting

- **Auth failure**: Check `~/.gradle/gradle.properties` has `gpr.user` and `gpr.key`
- **Wrong JDK / CLI fails**: Ensure `JAVA_HOME` points to JDK 21+; CLI requires JRE 21+
- **MPP file names change after releases**: Run `git pull` then re-read `gradle.properties`
- **Composite builds**: If `morphe-patcher` exists as sibling dir, it's auto-included

Versions

The database has no other skills named dev-environment-setup.

Database snapshot: 13.11.2026 · package version 6cc028306475 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 95build-deploy-troubleshoot
    Build, test, deploy, and troubleshoot Morphe patches — gradle commands, CLI usage, git workflow, common errors and fixes. Use when building patches, testing with CLI, deploying releases, or debugging issues.
  • 10003-dev-environment-setup
    Use when producing or updating development environment setup guide for repeatable prerequisites, installation, configuration, build, and verification steps. Use deployment-guide for the neighbouring concern; this skill owns the named document contract and its acceptance evidence.
  • 95morphe-cli-reference
    Morphe CLI v1.17.0 (morphe-desktop) complete command reference — patch, list-patches, list-versions, options-create, utility install/uninstall. Use when running CLI commands, testing patches, or troubleshooting CLI usage.
  • 100local-dev
    Local development environment setup and commands. Use when helping with dev server, Docker, or local testing.
  • 100env-setup
    Environment setup assistant — detects project requirements, generates .env.example, documents prerequisites, creates setup scripts, and verifies the development environment is ready. Use when setting up a project for the first time.
  • 100obsidian-install-auth
    Set up Obsidian plugin development environment with Node.js and TypeScript. Use when starting a new plugin project, configuring the dev environment, or initializing Obsidian plugin development from scratch. Trigger with phrases like "obsidian setup", "obsidian plugin dev",…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.