Pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project.
Pylon is built entirely on a web stack, making it the most hacker-friendly IDE today. Fork it, hack it, make it your own and if you think others would benefit, file a pull request against development
branch in this repo or create an issue. You can run Pylon locally or on a remote server - always ready to be available from wherever you are, assisting you to breathe life into every aspect of your ideas and projects.
- High performance ACE text editor with bundled syntax highlighting to support a wide range of programming languages.
- Modern node support (NodeJS >= 14.21.1)
- Up to date dependencies and compatibility fixes
- Terminal
Browser used: Safari 12.1.1
Login picture by Annie Spratt - Fog (Unsplash license)
Check out pylonide/pylon-plugin-mungit for the Git plugin.
Modern versions of Chrome and Safari are supported. Firefox, altough functional, no longer works as intended as of version 64.0. In the future, efforts will be made to restore compatibility.
Efforts have been made to make Pylon usable with iPad. However, for a smoother ride, some keyboard settings needs to be changed:
- Settings -> General -> Keyboard -> Auto-Correction ->
Off
- Settings -> General -> Keyboard -> Smart Punctuation ->
Off
(interferes with coding by changing quotes) - Settings -> General -> Keyboard -> Shortcuts ->
Off
(interferes by displaying bottom bar that hides the console prompt)
For quality of life it is recommended to remap Caps Lock hardware key to act as an ESC key:
- Settings -> General -> Keyboard -> Hardware Keyboard -> Modifier Keys -> Caps Lock Key -> Escape
If installing on Windows, please refer to Installation on Windows.
Requirements (>= 2.9.0):
- NodeJS
>= 14.21.1
- g++-4.9 (Required for node-pty compilation)
- make (Required for node-pty compilation)
- python (Required for node-pty compilation)
Install:
git clone https://github.com/pylonide/pylon.git
cd pylon
npm i
The above install steps creates a pylon
directory with a bin/pylon.sh
script that can be used to start Pylon:
bin/pylon.sh
Optionally, you may specify the directory you'd like to edit:
bin/pylon.sh -w ~/git/myproject
Pylon will be started as a web server on port -p 3131
, you can access it by
pointing your browser to: http://localhost:3131
By default Pylon will only listen to localhost.
To listen to a different IP or hostname, use the -l HOSTNAME
flag.
If you want to listen to all IP's:
bin/pylon.sh -l 0.0.0.0
If you are listening to all IPs it is advised to add authentication to the IDE.
You can either do this by adding a reverse proxy in front of Pylon,
or use the built in basic authentication through the --username
and --password
flags.
bin/pylon.sh --username leuser --password plnisawesome
Pylon is compatible with all connect authentication layers,
to implement your own, please see the plugins-server/cloud9.connect.basic-auth
plugin
on how we added basic authentication.
If you are on Windows Insider Program, use the Bash on Windows feature to install Pylon.
Install NVM to manage node versions. Install a node version to your liking. The following is needed to install the needed build tools:
sudo apt-get update
sudo apt-get install build-essential
Clone the Pylon repo to your machine and run npm:
npm install
bin/pylon.sh -w . -l 0.0.0.0
Pylon IDE can be successfully deployed and run within a container. However, if the npm
utility complains permissions during install. One must include --unsafe-perm
for the installation to pass successfully.
To update to the latest version (if this doesn't work, just make a fresh clone):
git pull
npm update
Pylon functionality is all created around server and client-side plugins. However, there is hardly any documentation about the APIs to create your own plugins. To get you started, please see pylonide/pylon-plugin-mungit to see how to get started for a client-side only plugin.
Going forward, there will be efforts made to sort out the documentation and write some tutorials to make it more easier to get started.
The GPL v3.
Open new issue for discussion and/or feel free to submit a pull request against the development
branch.