Reference

Commands, structure, and compiler details.

Use this page when you need a quick map of NovaDev commands, shell commands, file layout, compiler pipeline, project architecture, and generated output.

CLI

NovaDev command-line tools.

nova.py commands
python nova.py new my_app --frontend Vue --backend Flask --database SQLite
python nova.py run examples/scripts/math_tool.nova
python nova.py shell
python nova.py ir examples/apps/ecommerce_1_1
python nova.py explain examples/apps/ecommerce_1_1
python nova.py validate examples/apps/ecommerce_1_1
python nova.py tokens examples/apps/webshield
python nova.py ast examples/apps/webshield --json
python nova.py lint examples/apps/webshield
python nova.py format examples/apps/webshield --check
python nova.py docs examples/apps/webshield
python nova.py build-ui examples/apps/webshield
python nova.py build-backend examples/apps/webshield
python nova.py build-fullstack examples/apps/webshield
python nova.py dev examples/apps/webshield
python nova.py clean generated/web-shield
novapm.py commands
python novapm.py doctor
python novapm.py install-language --source .
python novapm.py init-registry
python novapm.py configure-registry https://example.com/nova-packages.json
python novapm.py search ui
python novapm.py install packages/hello-ui
python novapm.py list
python novapm.py info hello-ui
python novapm.py remove hello-ui
python novapm.py pack packages/hello-ui

Shell

Interactive commands inside python shell.py.

.load

Load and run a NovaDev file inside the shell session.

.tokens

Show lexer tokens for a file or project.

.ast

Inspect parsed AST output, including JSON mode when supported.

.lint

Find common project or syntax issues before generation.

.docs

Generate documentation from Nova project declarations.

.build-fullstack

Generate frontend and backend project files from a NovaDev app.

Compiler Pipeline

How NovaDev thinks about source code.

1

Lexer

Reads source text and emits tokens for identifiers, keywords, strings, numbers, booleans, nil, operators, punctuation, and comments.

2

Parser

Converts tokens into AST nodes for programs, expressions, statements, app declarations, pages, tables, routes, workflows, and modules.

3

Interpreter

Walks the AST, evaluates expressions, stores variables in environments, runs functions, loops, conditions, classes, and print calls.

4

ProjectIR

Collects app-level declarations into a structured intermediate representation used by project-specific generators.

5

Generators

Write Vue, Tailwind, Flask, models, routes, workflow hooks, custom files, and docs from the declared project structure.

File Structure

Recommended folders for NovaDev and generated projects.

NovaDev source tree
novadev/
  lexer.py
  parser.py
  ast_nodes.py
  interpreter.py
  runtime.py
  project_ir.py
  package_manager.py
nova.py
shell.py
novapm.py
examples/
packages/
docs/
nova website/
Generated full-stack project
generated/my-app/
  frontend/
    src/
      pages/
      services/
      style.css
    package.json
  backend/
    app.py
    models.py
    routes.py
    workflows.py
    modules/
    requirements.txt
  docs/
    project.md

FAQ

Developer questions.

No. NovaDev has a lexer, parser, AST, interpreter, shell, runtime, module system, package manager, and a ProjectIR compiler layer. The generator should use declarations and custom code, not blindly copy the same files into every project. Use mode custom when the app does not fit a common category. NovaDev should generate only from the tables, pages, workflows, routes, modules, architecture, and custom code you declare. Tailwind makes project-driven styling easier because the generator can compose utility classes from mode, theme, page type, and component role without sharing one global CSS look across every project. Nova-wrapped Python modules let developers add project-specific backend logic. Workflows and generated routes can call those helpers when the app declares them.