# aless > JSON, YAML, TOML, CSV, XML, INI, Markdown and more as one tree: a jless-style viewer in a terminal, and JSON on standard output for scripts and agents. The documentation of aless 0.1.1, in Diátaxis's four kinds. Every page has a Markdown version at its address with .md for .html, and the reference is also plain text, as aless --help and F1 print it. ## Tutorials - [Look around a file in the viewer](https://aless.tabnas.dev/tutorials/viewer.md): Open a file in aless, move through it, fold it, search it and copy a path, then change it on disk and see aless keep your place. - [Ask a file questions from a script](https://aless.tabnas.dev/tutorials/scripting.md): Use aless without its viewer, as a script or an agent does, to outline a file, read the value at a path, find nodes, turn a line and column into a path, and read an error. ## How-to guides - [Install aless](https://aless.tabnas.dev/how-to/install.md): Install aless on Linux, macOS or Windows, from a release, with Homebrew or with Cargo, and check what you downloaded. - [Set up completions and the man page](https://aless.tabnas.dev/how-to/completions.md): Have your shell complete aless's options and their values, and man show its manual page, however you installed aless. - [Choose the format aless reads](https://aless.tabnas.dev/how-to/formats.md): Read a file whose name does not tell its format, or standard input, as the format you name. - [Follow a file as it changes](https://aless.tabnas.dev/how-to/watch.md): Keep a file open in the viewer while it is written, rewritten or regenerated, with your place kept, and stop following it when you want it still. - [Copy a value or its path](https://aless.tabnas.dev/how-to/copy.md): Copy the focused node's value, its key or its path from the viewer, on a desktop or over SSH. - [Get values out of a file in a script](https://aless.tabnas.dev/how-to/extract.md): Print the value at a path as JSON, in any of the formats aless reads, for jq, a script or an agent to use. - [Convert a file to another format](https://aless.tabnas.dev/how-to/convert.md): Write a document, or the records in it, as CSV, YAML, TOML, a Markdown table or any other format aless can write, streamed as it reads. - [Check that files parse](https://aless.tabnas.dev/how-to/check.md): Find out which of a set of files do not parse, where and why, in a terminal or a CI job. - [Read a format aless does not know](https://aless.tabnas.dev/how-to/grammar.md): Describe a line-oriented text format in ABNF, and read its files in the viewer and from the command line like any built-in format. - [Reshape a document with a program](https://aless.tabnas.dev/how-to/alchemy.md): Run a program in the alchemy language over a document, to choose, rename and arrange its values as a table, written as CSV, JSON or any format aless writes. - [See a document beside its conversion](https://aless.tabnas.dev/how-to/panes.md): Open the output of --render or --alchemy in a pane next to the document, and keep it current as the document changes. - [Browse a directory](https://aless.tabnas.dev/how-to/explore.md): Open a directory as a tree in the viewer, find a file in it, and open the file in a tab. - [Give an agent aless](https://aless.tabnas.dev/how-to/agents.md): Install the Agent Skill that teaches an AI agent to read, query, check and convert files with aless's command line. ## Reference - [Command line](https://aless.tabnas.dev/reference/command-line.md): Every option, what each output prints, the errors and the exit statuses: the whole reference aless --help prints. - [Keys](https://aless.tabnas.dev/reference/keys.md): Every key and command of the viewer, as F1 lists them inside aless. ## Explanation - [One tree for every format](https://aless.tabnas.dev/explanation/one-tree.md): Why aless reads every format into the same kind of tree, what each format becomes, and what the single model gives up. - [Where each value came from](https://aless.tabnas.dev/explanation/positions.md): How aless knows the line and column of every value without any grammar recording it, where that is exact, and where it is a best effort. - [How a reload keeps your place](https://aless.tabnas.dev/explanation/reloading.md): What aless does when a watched file changes, why it finds your place again by path, and what happens when the file breaks or disappears. - [Why the command line answers in JSON](https://aless.tabnas.dev/explanation/command-line.md): The design of aless's interface for scripts and agents, and why it never waits, prints one answer, and keeps its output shapes stable. - [Large inputs, streaming and limits](https://aless.tabnas.dev/explanation/large-inputs.md): What aless costs in time and memory, which work streams and which reads a whole document, and the limits that keep a large or hostile input in check. - [aless and jless](https://aless.tabnas.dev/explanation/jless.md): What aless takes from jless, what it adds, and where the two behave differently, on purpose. ## Optional - [Agent Skill](https://aless.tabnas.dev/SKILL.md): the skill that teaches an agent to drive aless, which aless --generate skill also prints - [Source](https://github.com/rjrodger/aless): the code, the changelog and the releases