How about to add basic authorization to WRC.

Now it is not possible to download some distributive from WRC in one command in Linux. In first, you should send login and password as a form, save cookies after some redirects. And then it will be possible to download with this cookies. And this command looks so big.

wget -qO /dev/null --keep-session-cookies --save-cookies /dev/stdout --post-data="UserName=$WRC_USERNAME&Password=$WRC_PASSWORD" 'https://login.intersystems.com/login/SSO.UI.Login.cls?referrer=https%253A//wrc.intersystems.com/wrc/login.csp' \
 | wget -O - --load-cookies /dev/stdin "https://wrc.intersystems.com/wrc/WRC.StreamServer.cls?FILE=/wrc/distrib/$cache-lnxrhx64.tar.gz" \
 | tar xvfzC - . 

I would expect to see a much easiest way.

​curl -u $WRC_USERNAME:$WRC_PASSWORD https://wrc.intersystems.com/wrc/WRC.StreamServer.cls\?FILE\=/wrc/distrib/$cache-lnxrhx64.tar.gz
 | tar xvfzC - .

Is it possible to do it, or maybe you can recommend some other way?

And also, will be good to get some API, where I could ask for link to latest version, or for some particular major version, e.g. 2017.1, and for particular platform. So, I could use it to download latest version. 

Would be much better, if InterSystems will add OpenSearch to their documentation. And I think it will be enough only for the public version. And in this case, it will be supported in all modern browsers, without installation anything external.

Something like this.

<?xml version="1.0"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
 <ShortName>InterSystems docs latest</ShortName>
 <Description>InterSystems Ensemble Documentation latest Version</Description>
 <Url type="text/html" method="get" template="https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.SearchPageZen.cls?KEY=&KeyWord={searchTerms}"/>
</OpenSearchDescription>

Nowadays when somebody says "chatbot", it means, that such a chatbot will work on one of the popular chats. Like, Slack, Telegram, or maybe Skype. So, where your chat bot will work?

About functionality. Some time in the organization could be useful, such commands as create the new instance, or maybe clone some old one. And anyway you missed at least one command, it is a list of available instances.

But for such bot, I think should be much more than just to start or to stop instances. It is also should support, something like deploying some services there.

you should look at XSLT, it can help transform xml as you need

ClassMethod SplitXML() 
{

    for item="market","product" {
        set params("path")="/doc/"_item
        
        Set tSource=##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1)_"||XML").Data
        
        Set tXSL=##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1)_"||XSL").Data

        // Transform the source according to the XSL
        Set tSC=##class(%XML.XSLT.Transformer).TransformStream(tSource,tXSL,.tOutput,,.params)
        If $$$ISERR(tSC) Quit
        
        write !!
        // Output the result to the screen
        Set tSC=tOutput.OutputToDevice()
    }
}

XData XML
{
<?xml version="1.0"?>
<doc>
<header></header>
<product><test>1</test></product>
<market><test2>2</test2></market>
</doc>
}

XData XSL
{
<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:param name="path"></xsl:param>

<xsl:output method="xml" indent="no"/>
 
<xsl:template match="/">
    <xsl:copy-of select="$path"/>
</xsl:template>
    
</xsl:stylesheet>
}

will output like below

USER>d ##class(Test).SplitXML()


<?xml version="1.0" encoding="UTF-8"?><market><test2>2</test2></market>

<?xml version="1.0" encoding="UTF-8"?><product><test>1</test></product>

you can do it with ccontrol tool

Syntax:
    ccontrol create <instance name> <parameters>
Description:
    Create an instance's entry in the Cache registry.
Parameters:
    directory=<installation directory name>
    versionid=<version identifier>
Example:
    ccontrol create mystuff directory=/usr/cachesys versionid=2008.2.0.357.0