# Developing

Developing for Cheddar development was designed to be as easy and quick to make as possible. Unfortunately, the workings can be confusing to someone not familiar with how cheddar works. This chapter will cover how Cheddar works, and how to develop for it. If you have *any* questions at all, please do not hesitate to ask on [Slack](http://cheddarlang.slack.com), [Stack Exchange Chat](http://chat.stackexchange.com/rooms/37686/cheddar), or [Gitter](https://gitter.im/cheddar-lang/Cheddar).

## Downloading

> ### Info::Windows Users
>
> If you are on *Windows* you can install `make` from [here](http://gnuwin32.sourceforge.net/packages/make.htm) if you haven't already. Make sure `make` is in your PATH, if it isn't **that's okay**, but you'll have to manually build using `<location of make> build`

To download the source **make sure you have `node`, `npm`, and `make` installed**. Once you've done that clone the `develop` branch from Github:

```bash
$ git clone -b develop http://github.com/cheddar-lang/Cheddar.git
```

now in that directory, you're going to see a `src/` folder. That is where the source code is.

Before developing, make sure you run:

```bash
$ npm install
```

to install the required dependencies

## Running

To run it, first run `make build`:

```bash
$ make build
```

this will compile the code. If it doesn't error, you can run it:

```bash
$ node ./dist/cli/cheddar.js
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cheddar.vihan.org/docs/developing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
