Currently an incomplete alpha. Testing instructions below for various distributions.
This repository now includes the most comprehensive development tools collection available with 2,600+ modern tools across 100+ categories for COSMIC SVM application development.
# Install all 2,600+ development tools
just dev-tools
# Check installation status (688 tool checks)
just dev-tools-check- 🚀 50+ Programming Languages: Zig, Crystal, Rust, Go, Python, Node.js, Deno, Bun, and more
- 📦 40+ Package Managers: npm, pnpm, cargo, poetry, and modern alternatives
- 🔨 35+ Build Systems: Vite, esbuild, turbo, nx, and next-generation tools
- 📝 30+ Modern Editors: Cursor (AI-powered), Zed, VS Code, Neovim, Helix
- 🐳 25+ Container Tools: Docker, Podman, Buildah, and modern runtimes
- ☸️ 60+ Kubernetes Tools: Complete cloud-native development stack
- 🤖 60+ AI/ML Tools: PyTorch, TensorFlow, Hugging Face, MLflow, and ML toolchain
- 🔒 45+ Security Tools: Comprehensive security and compliance suite
- 🌐 40+ API Tools: Modern API development and testing tools
- 📱 25+ Mobile Tools: React Native, Flutter, and cross-platform development
- ⛓️ 30+ Blockchain Tools: Foundry, Hardhat, Solana CLI, and Web3 stack
- And 100+ more categories covering every aspect of modern development
- ✅ Only Modern Tools: All tools actively maintained with GitHub repositories
- ✅ Latest Versions: Automatic detection and installation of latest releases
- ✅ Cross-Platform: Support for apt, pacman, dnf package managers
- ✅ Comprehensive: From systems programming to AI/ML to blockchain development
- ✅ Production Ready: Enterprise-grade tools used by top companies
mindmap
root((COSMIC SVM<br/>Dev Tools<br/>2,600+))
Programming Languages
Core Languages (25+)
Rust, Go, Python
Node.js, Deno, Bun
Zig, Crystal, Swift
Functional
Clojure, Scala, Haskell
Erlang, Elixir
Scientific
Julia, R, MATLAB
IDEs & Editors (15+)
Modern
VS Code, Cursor IDE
Zed IDE
Enterprise
IntelliJ, Eclipse
WebStorm, NetBeans
Terminal
Vim, Emacs, Helix
Web Development (40+)
Frameworks
React, Angular, Vue
Svelte, SolidJS
Build Tools
Vite, Webpack, esbuild
Rollup, Parcel
Styling
Tailwind, Sass, PostCSS
Cloud & Infrastructure (25+)
Multi-Cloud
AWS, Azure, GCP
DigitalOcean, Linode
IaC
Terraform, Pulumi
Ansible, Chef
Containers
Docker, Podman, k8s
Security & Network (30+)
Scanning
Nmap, Nikto, OpenVAS
Penetration Testing
Metasploit, Burp Suite
VPN
WireGuard, Tailscale, Tor
AI/ML & Blockchain
AI Tools
PyTorch, TensorFlow
Ollama, Transformers
Blockchain
Hardhat, Foundry
Solidity, Web3
Database Systems (20+)
SQL
PostgreSQL, MySQL
NoSQL
MongoDB, Redis, Neo4j
Big Data
Cassandra, InfluxDB
Specialized
Game Dev
Godot, Blender, Unity
Mobile
React Native, Flutter
Scientific
Jupyter, NumPy, SciPy
Media
FFmpeg, OBS, Audacity
For complete documentation, see docs/DEV-TOOLS.md.
The COSMIC Desktop Environment is built with a modular architecture that separates core libraries, system services, and user applications:
graph TB
subgraph "COSMIC Libraries & Protocols"
LP[libcosmic]
CP[cosmic-protocols]
CT[cosmic-text]
CTH[cosmic-theme]
CTI[cosmic-time]
end
subgraph "Core System Services"
CS[cosmic-session]
CC[cosmic-comp<br/>Wayland Compositor]
CSD[cosmic-settings-daemon]
CG[cosmic-greeter<br/>Display Manager]
CN[cosmic-notifications]
CI[cosmic-idle]
XDG[xdg-desktop-portal-cosmic]
end
subgraph "Desktop Environment"
CPL[cosmic-panel]
CBG[cosmic-bg]
CL[cosmic-launcher]
COSD[cosmic-osd]
CWE[cosmic-workspaces-epoch]
CA[cosmic-applets]
end
subgraph "User Applications"
CF[cosmic-files]
CE[cosmic-edit]
CTERM[cosmic-term]
CSET[cosmic-settings]
CST[cosmic-store]
CP2[cosmic-player]
CSS[cosmic-screenshot]
CTE[cosmic-theme-editor]
CAL[cosmic-applibrary]
end
subgraph "External Integration"
PL[pop-launcher]
CR[cosmic-randr]
CICO[cosmic-icons]
end
%% Dependencies
LP --> CS
LP --> CC
LP --> CSD
LP --> CPL
LP --> CF
LP --> CE
LP --> CTERM
LP --> CSET
LP --> CST
CP --> CC
CP --> XDG
CT --> CF
CT --> CE
CT --> CTERM
CTH --> CPL
CTH --> CBG
CTH --> CTE
%% System interactions
CS --> CC
CS --> CSD
CS --> CG
CS --> CPL
CC --> CBG
CC --> CPL
CC --> CL
CC --> COSD
CC --> CWE
CSD --> CSET
CSD --> CTH
%% External integrations
PL --> CL
CR --> CSET
CICO --> CPL
CICO --> CF
classDef library fill:#e1f5fe
classDef service fill:#f3e5f5
classDef desktop fill:#e8f5e8
classDef app fill:#fff3e0
classDef external fill:#fce4ec
class LP,CP,CT,CTH,CTI library
class CS,CC,CSD,CG,CN,CI,XDG service
class CPL,CBG,CL,COSD,CWE,CA desktop
class CF,CE,CTERM,CSET,CST,CP2,CSS,CTE,CAL app
class PL,CR,CICO external
- cosmic-applets
- cosmic-applibrary
- cosmic-bg
- cosmic-comp
- cosmic-edit
- cosmic-files
- cosmic-greeter
- cosmic-icons
- cosmic-idle
- cosmic-launcher
- cosmic-notifications
- cosmic-osd
- cosmic-panel
- cosmic-player
- cosmic-randr
- cosmic-screenshot
- cosmic-session
- cosmic-settings
- cosmic-settings-daemon
- cosmic-store
- cosmic-term
- cosmic-theme-editor
- cosmic-workspaces-epoch
- xdg-desktop-portal-cosmic
- pop-launcher
The COSMIC desktop environment requires a few dependencies: (This list does not try to be exhaustive, but rather tries to provide a decent starting point. For detailed instructions, check out the individual projects):
- just
- rustc
- libwayland
- mesa (or third-party libEGL/libGL implementations, though interfacing with mesa's libglvnd is generally recommended).
- libseat
- libxkbcommon
- libinput
- udev
- dbus
optionally (though the build-system might currently require these libraries):
- libsystem
- libpulse
- pop-launcher
- libexpat1
- libfontconfig
- libfreetype
- lld
- cargo
- libgbm-dev
- libclang-dev
- libpipewire-0.3-dev
Note: libfontconfig, libfreetype, and lld are packages specific to Linux distributions. You may need to find the equivalent version for your distribution if you are not using Pop!_OS.
The required ones can be installed with:
sudo apt install just rustc libglvnd-dev libwayland-dev libseat-dev libxkbcommon-dev libinput-dev udev dbus libdbus-1-dev libpam0g-dev libpixman-1-dev libssl-dev libflatpak-dev -y
and the optional ones with:
sudo apt install libsystemd-dev libpulse-dev pop-launcher libexpat1-dev libfontconfig-dev libfreetype-dev mold cargo libgbm-dev libclang-dev libpipewire-0.3-dev -y
They can be installed all at once with:
sudo apt install just rustc libglvnd-dev libwayland-dev libseat-dev libxkbcommon-dev libinput-dev udev dbus libdbus-1-dev libsystemd-dev libpixman-1-dev libssl-dev libflatpak-dev libpulse-dev pop-launcher libexpat1-dev libfontconfig-dev libfreetype-dev mold cargo libgbm-dev libclang-dev libpipewire-0.3-dev libpam0g-dev -y
For developers working on COSMIC SVM applications, a MASSIVE comprehensive suite of 744+ development tools can be installed:
just dev-tools
This creates a TOP-NOTCH development station with tools covering every possible development workflow:
- Compiled: Rust, Zig, Crystal, Go, C/C++, Java, Swift, Haskell, Elixir, Nim, D, V, Ada, Pascal, Fortran, COBOL, Assembly (NASM/YASM)
- Interpreted: Python 3, Node.js, Ruby, Perl, PHP, Lua, R, Tcl/Tk, AWK, sed
- Functional: Clojure, Scala, F#, OCaml, Erlang, Scheme, Common Lisp, Racket
- Scientific: Julia, MATLAB alternatives, Mathematica alternatives
- Emerging: Deno, Bun, WebAssembly tools
- Modern: Visual Studio Code, Cursor IDE (AI-powered), Zed IDE (collaborative)
- Enterprise: IntelliJ IDEA, Eclipse, NetBeans, WebStorm, Code::Blocks, Qt Creator
- Classic: Emacs, Vim/Neovim, Sublime Text, Brackets
- Terminal: Helix, Kakoune, Micro, nano
- Engines: Godot, Blender, Unity Hub tools, Unreal Engine tools
- Libraries: SDL2, SFML, Allegro, LÖVE 2D
- Assets: Aseprite, Tiled Map Editor, sprite tools
- Frameworks: React, Angular, Vue, Svelte, SolidJS, Lit, Stencil, Qwik
- Build Tools: Vite, Rollup, Parcel, esbuild, SWC, Webpack
- Styling: Sass, Less, Stylus, Tailwind CSS, PostCSS
- Static Sites: Gatsby, Next.js, Nuxt, Hugo, Jekyll, Eleventy
- Cross-Platform: React Native, Flutter, Ionic, Cordova, PhoneGap, NativeScript, Xamarin
- Native Tools: Android SDK, ADB, Fastboot, iOS tools
- Testing: Appium, Device simulators
- Containers: Docker, Podman, Buildah, Skopeo
- Kubernetes: k3s, kubectl, k9s, Helm, Lens, kubectx, stern, dive, kustomize
- Service Mesh: Istio, Linkerd, Consul Connect
- Multi-Cloud: AWS CLI, Azure CLI, Google Cloud CLI, Oracle Cloud, IBM Cloud, DigitalOcean, Linode, Vultr
- IaC: Terraform, Pulumi, CDK, SAM, Serverless Framework
- Config Management: Ansible, Chef, Puppet, SaltStack
- Secrets: Vault, Consul, etcd
- Scanning: Nmap, Masscan, Zmap, Nikto, SQLmap, OpenVAS
- Penetration Testing: Metasploit, Burp Suite, OWASP ZAP, Aircrack-ng, Hydra, John the Ripper
- Network Analysis: Wireshark, tcpdump, iftop, Ettercap
- VPN: OpenVPN, WireGuard, Tailscale, Tor, Yggdrasil, i2p
- SSL/TLS: sslscan, testssl.sh
- Metrics: Prometheus, Grafana, Netdata, Zabbix
- APM: New Relic, DataDog, Jaeger, Zipkin
- Benchmarking: sysbench, stress-ng, iperf3, fio, Apache Bench, wrk, siege
- Profiling: perf, Valgrind, Intel VTune
- Load Testing: Artillery, Locust, K6
- API Testing: Postman, Newman, Insomnia, HTTPie, Dredd, Karate
- Browser Testing: Selenium, Playwright, Cypress, TestCafe, Puppeteer
- Code Quality: ESLint, Prettier, SonarQube, CodeClimate
- Relational: PostgreSQL, MySQL, MariaDB, SQLite
- NoSQL: MongoDB, CouchDB, Redis, Neo4j, ArangoDB, OrientDB
- Time Series: InfluxDB, TimescaleDB
- Big Data: Cassandra, ScyllaDB
- Tools: DBeaver, pgAdmin4, MongoDB Compass, MySQL Workbench
- Python Stack: Jupyter, NumPy, SciPy, Pandas, Matplotlib, scikit-learn
- R Ecosystem: R Studio, statistical packages
- Math Software: GNU Octave, Maxima, SageMath
- Specialized: ParaView, QGIS, ROOT (CERN)
- Raster: GIMP, Krita, Photoshop alternatives
- Vector: Inkscape, Illustrator alternatives
- 3D: Blender, FreeCAD, OpenSCAD
- Photography: Darktable, RawTherapee
- CLI Tools: ImageMagick, GraphicsMagick
- Video: FFmpeg, Kdenlive, OpenShot, Pitivi, OBS Studio
- Audio: Audacity, sox, lame, flac
- Players: VLC, MPV, MPlayer
- Streaming: Streamlink, youtube-dl, yt-dlp
- VMs: VirtualBox, QEMU, KVM, libvirt, Vagrant
- Containers: Docker, Podman, LXC/LXD
- Info: neofetch, screenfetch, lshw, hwinfo
- Monitoring: htop, atop, glances, powertop
- Files: ncdu, fzf, ripgrep, fd, bat, exa, tree
- Network: netcat, socat, mtr, dig, nslookup
- Chat: Discord, Slack, Teams, Telegram, Signal, WhatsApp
- Email: Thunderbird, Evolution, Mutt
- IRC: irssi, weechat
- Matrix: Element
- Disassemblers: Ghidra, Radare2, Cutter
- Debuggers: GDB, LLDB
- Analysis: Binwalk, strings, objdump, hexdump
- Platforms: Arduino CLI, PlatformIO, ESP-IDF
- Toolchains: ARM GCC, AVR GCC
- Debug: OpenOCD, Minicom
- Hardware: STM32 tools, JTAG utilities
- Web Servers: Nginx, Apache, Caddy, HAProxy, Traefik
- Certificates: Let's Encrypt Certbot
- Service Discovery: Consul, etcd
- Orchestration: Nomad
- AI Tools: Ollama (local LLMs), llama.cpp, PyTorch, Transformers, TensorFlow
- Blockchain: Hardhat, Truffle, Ganache, Foundry, Solidity compiler, Web3 tools
- GPU Computing: CUDA Toolkit with automatic detection
- Time Tracking: TimeWarrior, task management
- Notes: Joplin, Notable
- Documentation: MkDocs, Sphinx, Pandoc, GitBook, Docusaurus
- Diagrams: PlantUML, Mermaid, Draw.io
- Package Managers: npm, yarn, pnpm, pip, cargo, go modules, composer, gem, nix
- Terminal Enhancement: Zsh, Oh My Zsh, Fish, Starship prompt, Alacritty, Kitty, WezTerm
- Code Formatters: Prettier, Black, Rustfmt, gofmt, clang-format, and 50+ more
- Accessibility: axe-core, Pa11y, Lighthouse accessibility audits
- File Sync: Syncthing, rclone, Unison, Borgbackup, Restic
To verify your massive development tools installation:
just dev-tools-check
This will show you a comprehensive overview of all 744+ installed tools across 89 categories, making this the most complete development environment setup available!
The easiest way to test COSMIC DE currently is by building a systemd system extension (see man systemd-sysext).
git clone --recurse-submodules https://github.com/pop-os/cosmic-epoch
cd cosmic-epoch
just sysext
This will create a system-extension called cosmic-sysext, that you can move (without renaming!) into e.g. /var/lib/extensions.
After starting systemd-sysext.service (sudo systemctl enable --now systemd-sysext) and refreshing (sudo systemd-sysext refresh) or rebooting,
COSMIC will be an available option in your favorite display manager.
If you have SELinux enabled (e.g. on Fedora), the installed extension won't have the correct labels applied.
To test COSMIC, you can temporarily disable it and restart gdm (note that this will close your running programs).
sudo setenforce 0
sudo systemctl restart gdmNote: An extension created this way will be linked against specific libraries on your system and will not work on other distributions. It also requires the previously mentioned libraries/dependencies at runtime to be installed in your system (the system extension does not carry these libraries).
Read-Only Filesystem: If you're not on an immutable distro you may notice that /usr/ and /opt/ are read-only.
this is caused by systemd-sysext being enabled, when you are done testing you can disable systemd-sysext (sudo systemctl disable --now systemd-sysext)
It is thus no proper method for long term deployment.
COSMIC DE is packaged for Pop!_OS. For reference, look at the debian folders in the projects repositories.
These and the justfile inside this repository may be used as references on how to package COSMIC DE, though no backwards-compatibility guarantees are provided at this stage.
COSMIC DE is very much still work-in-progress and thus does not follow a versioning scheme so far. We do our best to keep the referenced submodule commits in this repository building and working together, as a consequence they might not contain the latest updates and features from these repositories (yet).
Notes on versioning and packaging all these components together properly will be added at a later stage once COSMIC DE gets its first release.
Choose your installation method based on your distribution and needs:
flowchart TD
Start([Want to install COSMIC?]) --> OS{Which OS?}
OS -->|Pop!_OS| PopOS[Pop!_OS]
OS -->|Arch Linux| Arch[Arch Linux]
OS -->|Fedora| Fedora[Fedora]
OS -->|NixOS| NixOS[NixOS]
OS -->|openSUSE| SUSE[openSUSE Tumbleweed]
OS -->|Gentoo| Gentoo[Gentoo]
OS -->|Other| Other[Other Distribution]
PopOS --> PopVer{Which version?}
PopVer -->|24.04 Alpha| Pop24[✅ Recommended<br/>Latest features]
PopVer -->|22.04 LTS| Pop22[⚠️ Legacy<br/>Limited updates]
Pop24 --> PopInstall[Install from ISO<br/>or upgrade with<br/>pop-upgrade]
Pop22 --> PopLegacy[Enable Wayland<br/>+ Install cosmic-session]
Arch --> ArchInstall[pacman -S cosmic-session<br/>or pacman -S cosmic]
Fedora --> FedoraInstall[dnf copr enable ryanabx/cosmic-epoch<br/>dnf install cosmic-desktop]
NixOS --> NixInstall[Add to configuration.nix:<br/>services.desktopManager.cosmic.enable = true]
SUSE --> SUSEInstall[opi patterns-cosmic<br/>Select X11:COSMIC:Factory]
Gentoo --> GentooInstall[Add cosmic-overlay<br/>emerge cosmic-meta]
Other --> BuildChoice{Build from source?}
BuildChoice -->|Yes| BuildSource[Install dependencies<br/>+ git clone --recurse-submodules<br/>+ just sysext]
BuildChoice -->|No| Wait[Wait for your distro<br/>to package COSMIC]
PopInstall --> Login[Log out → Select COSMIC<br/>at login screen]
PopLegacy --> Login
ArchInstall --> Login
FedoraInstall --> Login
NixInstall --> Login
SUSEInstall --> Login
GentooInstall --> Login
BuildSource --> SystemExt[Move cosmic-sysext to<br/>/var/lib/extensions<br/>+ systemctl enable systemd-sysext]
SystemExt --> Login
Login --> DevTools{Need dev tools?}
DevTools -->|Yes| InstallTools[just dev-tools<br/>2,600+ tools installed]
DevTools -->|No| Enjoy[🎉 Enjoy COSMIC!]
InstallTools --> CheckTools[just dev-tools-check<br/>Verify installation]
CheckTools --> Enjoy
classDef recommended fill:#c8e6c9
classDef warning fill:#ffecb3
classDef action fill:#e1f5fe
classDef end fill:#f3e5f5
class Pop24,PopInstall recommended
class Pop22,PopLegacy warning
class ArchInstall,FedoraInstall,NixInstall,SUSEInstall,GentooInstall,BuildSource,SystemExt,InstallTools,CheckTools action
class Enjoy end
COSMIC DE is in its first alpha release. Using and testing the alpha is welcome. Bugs and breakage are expected.
The recommended way to test COSMIC Epoch on Pop!_OS is by using the Pop!_OS 24.04 LTS Alpha release. There are two ways to get the 24.04 Alpha:
- Install it from the latest Alpha release ISO.
- Upgrade an existing Pop!_OS 22.04 installation using the following command:
pop-upgrade release upgrade -f- If you experience problems during the upgrade, please open an issue in the pop-upgrade GitHub repository or join the Pop!_OS Mattermost chat server for assistance.
Pop!_OS 24.04 Alpha installations will be upgradable to the final 24.04 release, but some manual interventions may occasionally be required during development. If you're using Pop!_OS 24.04 Alpha, then it's recommended to join the Pop!_OS Mattermost chat server to receive news about the 24.04 development cycle.
Due to dependency requirements, COSMIC Epoch is no longer receiving updates on Pop!_OS 22.04 LTS. It's no longer recommended to test COSMIC Epoch on Pop!_OS 22.04 because the latest bug fixes and features are only available on newer distributions such as Pop!_OS 24.04.
Individual COSMIC applications work in the default GNOME session of Pop!_OS 22.04. You can install individual COSMIC applications using the following command:
sudo apt install cosmic-edit cosmic-files cosmic-player cosmic-store cosmic-term
An older release of the COSMIC Epoch desktop environment alpha is still available on Pop!_OS 22.04 LTS. If you encounter bugs while testing COSMIC Epoch on Pop!_OS 22.04, please check if they exist in Pop!_OS 24.04 before reporting them. You can install the older release on 22.04 with these instructions:
sudo nano /etc/gdm3/custom.conf
Change WaylandEnable to true:
WaylandEnable=true
Reboot for this change to take effect.
sudo nano /usr/lib/udev/rules.d/61-gdm.rulesLook for LABEL="gdm_prefer_xorg" and LABEL="gdm_disable_wayland". Add # to the RUN statements so they look like this:
LABEL="gdm_prefer_xorg"
#RUN+="/usr/libexec/gdm-runtime-config set daemon PreferredDisplayServer xorg"
GOTO="gdm_end"
LABEL="gdm_disable_wayland"
#RUN+="/usr/libexec/gdm-runtime-config set daemon WaylandEnable false"
GOTO="gdm_end"
Restart gdm
sudo systemctl restart gdmsudo apt install cosmic-session
After logging out, click on your user and there will be a sprocket at the bottom right. Change the setting to COSMIC. Proceed to log in.
Install via cosmic-session or the cosmic group, e.g.:
pacman -S cosmic-session or pacman -S cosmic
Then log out, click on your user, and a sprocket at the bottom right shows an additional entry alongside your desktop environments. Change to COSMIC and proceed with log in. For a more detailed discussion, consider the relevant section in the Arch wiki.
Cosmic may be installed via a Fedora COPR repository.
dnf copr enable ryanabx/cosmic-epoch
dnf install cosmic-desktop
Then log out, click on your user, and a sprocket at the bottom right shows an additional entry alongside your desktop environments. Change to COSMIC and proceed with log in. For further information, you may check the COPR page.
The COSMIC module on NixOS can be enabled by adding the following lines to
your NixOS configuration file (configuration.nix or in your Flake):
# Enable the login manager
services.displayManager.cosmic-greeter.enable = true;
# Enable the COSMIC DE itself
services.desktopManager.cosmic.enable = true;
# Enable XWayland support in COSMIC
services.desktopManager.cosmic.xwayland.enable = true;While some packages like cosmic-session might be present in prior versions,
the modules that add full support for COSMIC were added in NixOS 25.05.
You can find more details in the NixOS 25.05 release notes.
Cosmic can be installed by adding X11:COSMIC:Factory repo with opi.
opi patterns-cosmic
Select X11:COSMIC:Factory, after installing keep the repo.
Then log out, click on your user, and a sprocket at the bottom right shows an additional entry alongside your desktop environments. Change to COSMIC and proceed with log in. For further information, you may check the OBS page.
COSMIC can be installed on Gentoo via a custom overlay. Add the overlay using your preferred overlay manager (such as eselect), and then install the desktop environment:
eselect repository add cosmic-overlay git https://github.com/fsvm88/cosmic-overlay.git
Next, install the COSMIC desktop environment and its associated themes:
emerge cosmic-meta pop-theme-meta
Then log out, click on your user, and a sprocket at the bottom right shows an additional entry alongside your desktop environments. Change to COSMIC and proceed with log in. For further information, you may check the Gentoo Wiki or Overlay Repository.