# Configuration

{% hint style="info" %}
Check the ['Advanced/ Config' page ](/plugins/develop-plugins/advanced/config.md)for a more in-depth look at what exactly the `config.json` file is, and a description of the attributes.
{% endhint %}

With the *hello-plugin* created within our HollaEx Kit folder, we can start building the`config.json` file with all the basic information needed, good idea here to get out your IDE of choice.&#x20;

1. Create a file named`config.json` inside the `server/` directory of the newly-created *hello-plugin* plugin.
2. Copy and paste the following code into this newly created file:

<details>

<summary>Click here for the <em>config.json</em> code for <em>hello-plugin</em></summary>

```json
{
    "name": "hello-plugin",
    "version": 1,
    "type": null,
    "author": "You",
    "bio": "A short description",
    "description": "This is a longer description of your first plugin",
	"documentation": null,
	"logo": null,
	"icon": null,
	"url": null,
    "public_meta": {
        "public_message": {
          "type": "string",
          "required": false,
          "description": "I can be seen by anyone!",
          "value": "Hello, this text is from the plugin!"
        }
      },
      "meta": {
        "private_message": {
          "type": "string",
          "required": false,
          "description": "I can only be seen by some!",
          "value": "Hi, this is the secret text from the plugin!"
		}
	},
	"prescript": {
		"install": ["hello-world-npm"],
		"run": null
	},
	"postscript": {
		"run": null
	}
}
```

</details>

<figure><img src="/files/qBVFHtNdNFtYGFRGS4W6" alt=""><figcaption></figcaption></figure>

And that's all for what we need to do on this page!&#x20;

**Continue onto the** [**next step**](/plugins/develop-plugins/development-walkthrough-hello-plugin/scripting.md), or read below for a bit more understanding of what this new *config.json* is actually doing.

## What Did We Just Do?

Looking at the interesting bits of the config.json we can see what we have actually defined.&#x20;

{% hint style="info" %}
Check the list [on this page](/plugins/develop-plugins/advanced/config.md), for full definitions of each element
{% endhint %}

```json
{
  "name": "hello-plugin",
  "version": 1,
  "type": null,
  "author": "You",
  "bio": "A short description",
  "description": "This is a longer description of your first plugin",
    ...
}
```

The top part of the code we see above is fairly simple. We have defined the name, version, and author of the plugin (hello-plugin, on version 1, written by 'You'), as well as created its bio - a quick description, and the description - a more detailed description seen on the plugins page.

{% hint style="info" %}
*Documentation*, *logo*, *icon*, and *url* are all set to null at the moment so we will ignore them for now.
{% endhint %}

```json
{
    ...
    "public_meta": {
      "public_message": {
        "type": "string",
        "required": false,
        "description": "I can be seen by anyone!",
        "value": "Hello, this text is from the plugin!"
      }
    },
    "meta": {
      "private_message": {
        "type": "string",
        "required": false,
        "description": "I can only be seen by some!",
        "value": "Hi, this is the secret text from the plugin!"
      }
    },
    ...
}
```

Moving to the next code chunk, we find `public-meta` and `meta`.

Again for a more in-depth view of what these are, check the [main config page](/plugins/develop-plugins/advanced/config.md). Both`public-meta` and `meta` are core aspects of plugins, so it's good to have a solid understanding of them.

For *hello-plugin,* we have one object within both  `public-meta` and `meta`,  `public-message` and `private_message` respectively, both being fairly similar.

* `type` : This defines the (surprisingly) type of the object, out of four allowed types (`number`, `string`, `boolean`, and `date-time`). In *hello-plugin*, both `public-meta` and `meta objects` will be strings
* `required` : Neither of these values are strictly required for *hello-plugin* to run
* `description` is the description of the values, here we are reminded that `public-meta` is not a secret and `meta` is a secret object.&#x20;
* `value` : Here we find the strings our plugin will actually use. We will see these values actually on the exchange in the appropriate places later.

```json
{
    ...
"prescript": {
    "install": ["hello-world-npm"],
    "run": null
  },
  "postscript": {
    "run": null
  }
    ...
}
```

At the end of our code, we have the `prescript` and `postscript`. In *hello-plugin* all that will be installed is the `hello-world-npm` package before the plugin is live.


---

# 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.hollaex.com/plugins/develop-plugins/development-walkthrough-hello-plugin/configuration.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.
