MaiaStudio (The MaiaScript IDE) MaiaScript is a programming language aimed at developing adaptable and intelligent applications.

Downloads in past


033.9.117 months ago3 years agoMinified + gzip package size for maiascript-cli in KB


MaiaStudio (The MaiaScript IDE)
Copyright (C) 2020, 2021 Roberto Luiz Souza Monteiro, Renata Souza Barreto, Hernane Borges de Barros Pereira.
This software is distributed under the terms of several open sources licenses.
Please read the files LICENSE, COPYING or COPYING.LIB for further information.
maiascript.js is a compiler that implements the MaiaScript programming language.
MaiaScript is a programming language aimed at developing adaptable and intelligent applications. An adaptive application modifies its code to suit the conditions of the environment. An intelligent application, it learns to process the data it receives and adjusts to possible changes in its characteristics, over time. The MaiaScript language implements the adaptation paradigm, combining it with a variation of the object-oriented paradigm, simplified to exclude definitions of types and access restrictions. These characteristics make MaiaScript a programming language suitable for rapid learning, both by Computer Science professionals and scientists who are starting to implement computational algorithms. The characteristics of this language, also allow the rapid development of complex applications, especially when adaptability is necessary. MaiaScript also presents a syntax similar to that used in Mathematics, including libraries for Numerical Calculation, Complex Network Analysis, Database Access, Regular Expression Processing, and an abstraction layer between the MaiaScript interpreter and the underlying Operating System.
The complete documentation, including the EBNF grammar file and the compiler's syntax diagrams (railroad diagrams) can be found in the grammar directory. For more information send mail to:
MaiaStudio currently implements the following features:
  • Syntax highlighting;
  • Line number display;
  • Auto-indentation;
  • Automatic closing of structures;
  • Indent and unindent method;
  • Comment and uncomment method;
  • Undo and redo;
  • Search and replace text based on regular expressions;
  • Support for any language supported by the Prism syntax highlighter;
  • Lightweight and easily extensible editor;
  • Simplified API, although powerful;
  • GPU support;
  • Free software.

In addition to being accessible via the API, some commands are available as shortcut keys: or on macOS:
You can get the last MaiaStudio version at


MaiaScript uses the Algebrite CAS to solve complex expressions involving linear algebra, systems of equations and differential and integral calculus. For complete reference, see the Algebrite documentation at
To invoke CAS use the method:


To use the MaiaScript language in HTML documents, just include the file "js/maiascript.js" in the document and insert the MaiaScript code in <script> tags of type "text/maiascript":
<script type = "text/maiascript"> ... </script>
To compile and run the scripts configure the page's onload event to execute the "maiavm.compile()" method:
<body onload = "maiavm.compile();" ... </body>
To run MaiaScript code from the console, you need to install "Node.js" and the npm packages "jsdom" and "websql". To run a script use:
node js/maiascript.js "script name".maia
Or, if you installed the MaiaScript compiler using npm:
maiascript "script name".maia


To install the MaiaScript compiler command line tool and MaiaStudio use the command:
npm install -g maiascript-cli
Or, get it from GitHub:
git clone
Or, download the latest zipped version:
cd maiastudio-master
npm install -g .


To run the test scripts execute:


To run the command line tool, use the command:
maiascript [options] [script.maia] [--] [arguments]
To see the command line tool options run the command:
maiascript --help
To launch MaiaStudio open the file index.html, in the main directory of the package, in a browser.
To try MaiaStudio on-line go to
Lauro de Freitas, October 2020.
Roberto Luiz Souza Monteiro