Documentation

Features, settings, themes, languages and the plugin format. New to Vcode? Start with the guide.

What is Vcode?

Vcode is a fast, free and open source code editor and file manager for Android. It is a modified version of Squircle CE by Blacksquircle and is published under the Apache 2.0 license.

  • Requires Android 7.0 (API 24) or newer.
  • App id: com.vcode.studio, so it installs next to the original Squircle CE.
  • Source code and releases: github.com/Christianzz4603/Vcode.

Installing and updating

  1. Download Vcode-foss.apk from the download link or the releases page.
  2. Allow the install when Android asks you to let your browser or file manager install unknown apps.
  3. Open Vcode and grant access to your files when it asks.
Builds are signed with a temporary key unless a fixed release key is configured. Android refuses to update an app over a build signed with a different key. If that happens, back up your files, uninstall the old build and install the new one.

The editor

Tabs

Each open file has a tab with an icon for its language. A blue dot in place of the close button means the file has unsaved changes. Tap the selected tab to open a menu with close, close others and close all. Tabs can be reordered by dragging.

Languages

Vcode highlights 49 languages, including Kotlin, Java, Python, JavaScript, TypeScript, C, C++, C#, Go, Rust, Swift, PHP, Ruby, SQL, HTML, CSS, SCSS, Markdown and more. See the full list with file extensions. Plugins can map extra file extensions to these languages.

Keyword suggestions

While you type, a small box suggests keywords for the language of the file plus words that already appear in the file. For example, type imp and tap import. Plugins can add their own words per language.

Saving

Turn on Auto save in Settings > Editor to save files automatically. Auto save delay chooses when: when you switch tabs or leave the app, or 1, 3 or 10 seconds after you stop typing.

Cursor and text

  • Cursor style: thin, normal or thick.
  • Smooth cursor animation: animates the cursor when it moves (off by default).
  • Font ligatures: joins characters like => and != when the font supports it (on by default).

Themes

Vcode ships 15 themes: Vcode Dark, Dark+, Light+, One Dark, GitHub Dark, Dracula, Darcula, Eclipse, Monokai, Obsidian, IntelliJ Light, Ladies Night, Tomorrow Night, Solarized Light, Visual Studio. Pick one in Settings > Application > Color scheme. A theme colors the whole app, not only the code. Vcode Dark is the default. Plugins can add more themes. See all of them on the themes page.

Settings reference

SectionWhat is inside
ApplicationColor scheme, fullscreen mode, confirm exit.
EditorCursor style, smooth cursor animation, font ligatures, auto save and auto save delay, read-only mode, soft keyboard and other editing and display options.
Code styleFont and text options such as font size, font type and tab width.
FilesOptions for the file manager.
TerminalOptions for the built-in terminal.
KeybindingsKeyboard shortcuts.
CloudRemote servers for browsing and editing files over SFTP and FTP(S).
GitYour Git user name and email, and credentials.
PluginsInstall, turn on or off, and remove plugins.
AboutVersion, privacy policy, website and contribution links.

Plugins

Plugins add themes, keyword suggestions and file types. A plugin is data only: it contains no code, so installing one cannot run anything on your phone. Browse the plugins published for Vcode on the plugins page.

Install a plugin

  1. Open Settings > Plugins.
  2. Tap Install plugin and pick a .zip or .json file.
  3. Use the switch to turn it on or off, or Remove to delete it.

Themes show up in the color scheme list right away. Keyword suggestions and file types apply to files you open afterwards.

Plugin format

A plugin is a single plugin.json file, or a .zip with plugin.json at the top level (or inside one top-level folder) plus the theme files it uses.

{
  "id": "example.neon-pack",
  "name": "Neon Pack",
  "version": "1.0.0",
  "author": "Your name",
  "description": "A neon theme and a few web keywords",
  "themes": ["themes/neon.json"],
  "keywords": { "javascript": ["requestAnimationFrame", "IntersectionObserver"] },
  "extensions": { ".mjs": "javascript" }
}
FieldRequiredNotes
idyes3 to 64 characters: letters, digits, ., -, _. Installing the same id again replaces the plugin.
nameyesShown in the plugin list.
version, author, descriptionnoShown in the plugin list.
themesnoList of theme JSON files, relative to plugin.json.
keywordsnoObject: language name to a list of words (up to 5000 per language, each up to 64 characters).
extensionsnoObject: file extension with the dot to a language name.

At least one of themes, keywords or extensions is required. Language names are the ones from languages.json, for example javascript, python, kotlin, cpp, html, css, markdown, swift, rust, go.

Theme files

A theme file has a name, a type ("dark" or "light"), a colors object and optional tokenColors (TextMate scopes for syntax highlighting). Start by copying vcode_dark.json and changing the colors. Every theme needs all of these keys as #RRGGBB:

global.colorPrimary
global.colorOutline
global.colorBackgroundPrimary
global.colorBackgroundSecondary
global.colorBackgroundTertiary
global.colorTextAndIconPrimary
global.colorTextAndIconPrimaryInverse
global.colorTextAndIconSecondary
global.colorTextAndIconDisabled
global.colorTextAndIconAdditional
global.colorTextAndIconSuccess
global.colorTextAndIconError
editor.background
editor.foreground
editor.whitespace
editor.cursor
editor.handle
editor.selection.background
editor.currentLine.background
editor.highlightedDelimiters.background
editor.highlightedDelimiters.foreground
editor.matchHighlight.background
editor.lineNumber.divider
editor.lineNumber.background
editor.lineNumber.foreground
editor.lineNumber.activeForeground
editor.indentGuide.background
editor.indentGuide.activeBackground
editor.popupWindow.corner
editor.popupWindow.background
editor.popupWindow.activeBackground

If a color is missing, the plugin is rejected with a message that names the file and the color.

Limits

  • Up to 8 MB per plugin and 200 files in a .zip.
  • File paths inside a .zip must stay inside the plugin folder.

Examples: examples/plugins in the repository. Zip the contents of a plugin folder, so that plugin.json is at the top, then install the .zip.

Building from source

You need JDK 17, about 1.1 GB of free disk space and 4 GB of RAM.

git clone --recursive --depth=1 --shallow-submodules https://github.com/Christianzz4603/Vcode Vcode
cd Vcode
./gradlew :app:assembleFossRelease

Create a local.properties file with KEYSTORE_PATH, KEYSTORE_PASSWORD, KEY_ALIAS and KEY_PASSWORD to sign the release build. The repository also contains a GitHub Actions workflow that builds the FOSS APK and publishes it on every push to main.

Credits and license

Vcode is built on Squircle CE by Blacksquircle and its contributors, and on the sora-editor component library. It is licensed under the Apache License 2.0. See the NOTICE file for the list of modifications and the privacy policy.