Options (up to vs. 3.17.4)

Command-line options are used to tell the ampersand compiler what to do. This page lists the available options.
Some of the options are still experimental. Momentarily an effort is made to rationalize the options, so this may change at some point in the near future.
Since Ampersand-v3.5.3, it is possible to use a configuration file, reducing the need to rewrite the same options every time you use ampersand.exe. A configuration file can be used using the --config option.
This text may deviate slightly from the Ampersand version you are running, especially as new options are introduced. The command ampersand --help will give you the actual list.

-h, -?, --help

Print a usage message briefly summarizing the most common command-line options and the bug-reporting address, then exit. When used in combination with --verbose, it shows all command-line options. Use this to get the actual list of options of your Ampersand compiler.

-V, --version

Print the version number of Ampersand to the standard output stream. Please mention this information in every bug report you submit (see below).

Other options


generate documentation with ECA rules.


The metamodel in Formal-ampersand is loaded together with your own model. Use this feature in conjunction with --meta-tables to get a metamodel populated with your own script into the database.


generate graphics in an alternate way. (you may experiment with this option to see the differences for yourself)


Temporary option to create an Atlas without terms. This feature is used in RAP3 for performance reasons.


do not use colors in generated graphics. Use this feature if you must print in black and white, to obtain better results than printing a colored source on a black-and-white printer.


By default, the Ampersand compiler looks in the working directory for a config file (.yaml) with the same filename as the Ampersand script. Use this feature to redirect to another file. Use --sampleConfigFile to get a template.


generate crowfoot notation in conceptual models. This is used to better match the preferences of some database engineers in the generated documentation.


Set the default CRUD function for services. This function is explained in interface terms. This feature is used temporarily to gain experience with CRUD and learn about its semantics.

--customizations=DIRECTORY [, DIRECTORY]*

copy one or more directories into the generated prototype. This overrules the default directory, which is called customizations.

--dbName=NAME (-d)

database name. Use this for choosing the name of the SQL database. This overrules the environment variable CCdbName. It defaults to the filename of your Ampersand script.

--dev, --ignore-invariant-violations

Allow building a prototype, even if there are invariants that are being violated. (See issue 728 on Github)


diagnose your Ampersand script. Use this if you wish to generate a document containing only the diagnosis chapter.


Do not ignore leading and trailing spaces in .xlsx files that are INCLUDED in the script. Normally, Ampersand removes spaces around cell values in .xlsx files when transforming the cell value to atoms. Use this to enforce that spaces around cell values are meaningful.

--export[=file] (-e)

export as plain Ampersand script.


re-install the prototype framework. This discards any previously installed version. Use this to eradicate any doubt about a fresh reinstall.


Generate Function Point Analysis chapter. Use this to include a measure of the functional complexity (size) of the generated application into your functional specification document. This feature is currently out of order.


generate an Excel workbook (FPA_<filename>.xml). Use this to obtain the base data used in the function point analysis. This feature is currently out of order.

--fspec=FORMAT (-f)

generate a functional design document in specified output format (FORMAT=[Asciidoc, Context, Docbook, Docx, Html, Latex, Man, Markdown, Mediawiki, Opendocument, Org, Pandoc, Pdf, Plain, Rst, Rtf, Texinfo, Textile]). Use this to obtain documentation in the format of your own choice.


generate populations for use in RAP3.


generate internal data structure, written in Haskell. Use this for debugging.

--help (-h, -?)

get (this) usage information.

--services (-x)

generate services. This feature does not work properly at the moment.


Pick 'NL' for Dutch or 'EN' for English, as the language to be used in your output. Without this option, the output is written in the language of your context. Text snippets in other languages than the one specified are ignored. Use this to get a functional specification in the language of your choice.


Generate a .adl file that contains the relations of formal-ampersand, populated with the meta-population of your own .adl model.


Populate the metamodel of Ampersand with the contents of your own script. Use this feature in conjunction with --add-semantic-metamodel to get a metamodel populated with your own script into the database. This is used for higher-order purposes, specifically in RAP3.


prefix database identifiers with this namespace, in order to isolate namespaces within the same database. This feature was used in RAP2 to isolate students' work in separate tables.


Use the new optimizer at your own risk. Used for research purposes.


omit the diagnosis chapter from the functional design document.


omit the generation of graphics during the generation of the functional design document.


use the old optimizer at your own risk. Used for research purposes.

--outputDir=DIR (-o)

output directory. Use this if you want the Ampersand compiler to redirect the output to a location of your choice. This overrules the environment variable CCdirOutput.


Generate a .xmlx file containing the populations of your script. Meant to be used as an Excel-file in which you can add bulk data and reuse that for loading the data into your application.


generate derivations in HTML-format. Use this to see how Ampersand derives computer instructions from your rules.

--proto[=DIRECTORY] (-p)

generate an information system. Use this to verify your analysis or to obtain a working prototype from your Ampersand script. In some cases, the result will be good enough for production. This option overrules the environment variable CCdirPrototype.


tag, branch or SHA of the prototype framework on Github. Use this to select a specific version when generating an information system.


generate a table of references in the Natural Language chapter, for instance for legal traceability.


write a sample configuration file (sampleconfig.yaml). Use this to save yourself the trouble of looking up an example configuration file.


generate binary tables only in the SQL database. Use this to verify that the generated system works with binary tables as well as with wide tables.


set SQL hostname (Defaults to `localhost`). Use this to let the generated system know which database to connect to.


set SQL user name (Defaults to `ampersand`). Use this to let the generated system log into the database.


set SQL password (Defaults to `ampersand`). Use this to let the generated system log into the database.


generate a dump of SQL queries. Use this for debugging purposes.


Used for test purposes only.


Show contents and violations of specified rules. Use this for diagnostic purposes.


Use this to generate conceptual models as a UML 2.0 data model.


Compare results of rule evaluation in Haskell and SQL. Use this to debug the SQL code generator to validate the meaning of all rules, which are evaluated both in the compiler and in the database. This option requires command-line PHP with MySQL support.

--verbose (-V)

run the compiler in verbose mode. Use this for diagnostic purposes.

--version (-v)

show version and exit. Please use this when reporting bugs on Github.