> For the complete documentation index, see [llms.txt](https://docs.monitorss.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.monitorss.xyz/setting-up/existing-bot.md).

# Existing Bot/NPM

{% hint style="danger" %}
This documentation site is deprecated. Please visit the README of <https://github.com/synzen/MonitoRSS> for hosting instructions.
{% endhint %}

## Running the Bot

### Simple Way

[Setup](https://github.com/synzen/Discord.RSS/wiki/Setup) the bot and use the same bot token.

### Programmatically

Install `monitorss`:

```
npm install monitorss
```

or directly from dev branch for the latest updates via the format `npm install author/repo#branch`:

```
npm install synzen/monitorss#dev
```

```javascript
const MonitoRSS = require('monitorss')

const options = {
  setPresence: true,
  // Config format is same as config.json
  config: {
    bot: {
      token: "abc123"
    }
  }
}

const drss = new MonitoRSS.ClientManager(options)
drss.start()
```

#### ClientManager Options

An object can be passed in as the first parameter of `ClientManager`,&#x20;

| Name          | Type    | Description                                                                                   |
| ------------- | ------- | --------------------------------------------------------------------------------------------- |
| `setPresence` | Boolean | Set the bot's presence (online, dnd, etc.)                                                    |
| `schedules`   | Object  | Custom schedules to put certain URLs on a different retrieval cycle. See below for more info. |
| `config`      | String  | Configuration object whose structure matches that of config.bot.json.                         |

**Custom Schedules**

[Custom schedules](/configuration/bot-configuration/schedules.md) is passed as an object of objects in the format of

```javascript
{
    feed43: {
        refreshRateMinutes: 60,
        keywords: ["feed43"]
    },
    otherName: {
        refreshRateMinutes: 30,
        keywords: ["other", "words"]
    }
]
```

## Using Structures

If you don't want to run the bot and just want to have access to its structures:

```javascript
npm install monitorss
```

```javascript
const Feed = require('monitorss').Feed

async function myfunc() {
    await MonitoRSS.setupModels(mongoURI, mongoOptions)
    // Do what you want with Feed now
}


```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.monitorss.xyz/setting-up/existing-bot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
