The fastest way to install DMtools:
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/install.sh | bashIf you only need focused AI assistant skills, see Install Only the Skills You Need.
This script will:
- ✅ Check for Java 17+ (install if missing)
- ✅ Download the latest DMtools release
- ✅ Install to
~/.dmtools/ - ✅ Create the
dmtoolscommand alias - ✅ Set up shell integration (bash/zsh)
dmtools.env file. See Configuration Setup below.
# Latest stable version
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/install.sh | bashThe latest release alias is mutable. For reusable automation snippets, pinned release-tags are the authoritative reference, so prefer ${DMTOOLS_RELEASE_TAG} and ${DMTOOLS_VERSION} when documenting a repeatable install flow.
If you need a tagged reinstall for rollback or migration validation, use the example in Upgrading from legacy installs.
Use the focused skill packages when you want integration-specific slash commands in your AI assistant instead of the full /dmtools bundle.
| Skill | Slash command | Latest ZIP | Latest TAR |
|---|---|---|---|
| Full DMtools | /dmtools |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-skill.zip |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-skill.tar.gz |
| Jira | /dmtools-jira |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-jira-skill.zip |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-jira-skill.tar.gz |
| GitHub | /dmtools-github |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-github-skill.zip |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-github-skill.tar.gz |
| Azure DevOps | /dmtools-ado |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-ado-skill.zip |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-ado-skill.tar.gz |
| TestRail | /dmtools-testrail |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-testrail-skill.zip |
https://github.com/epam/dm.ai/releases/latest/download/dmtools-testrail-skill.tar.gz |
# Primary form: install only Jira
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/skill-install.sh | bash -s -- --skill jira
# Allowed alias: install Jira + GitHub together
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/skill-install.sh | bash -s -- --skills=jira,github
# Install every supported skill package
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/skill-install.sh | bash -s -- --all-skills
# Download the installer first when you want to reuse it locally
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/skill-install.sh -o skill-install.sh
bash skill-install.sh --skills=jira,github
# Invalid skill names cause a non-zero exit and list the invalid names
bash skill-install.sh --skills=jira,unknown
# Use --skip-unknown to downgrade invalid skill names to warnings
bash skill-install.sh --skills=jira,unknown --skip-unknown$env:DMTOOLS_SKILLS = "jira,github"
irm https://github.com/epam/dm.ai/releases/latest/download/skill-install.ps1 | iexUnknown skill names cause a non-zero exit and list the invalid names.
When --skip-unknown is provided, invalid skill names are downgraded to warnings.
- Download the ZIP or TAR for the skill you need.
- Extract it into
.cursor/skills/,.claude/skills/, or.codex/skills/. - The extracted folder name becomes the slash command, for example
dmtools-jira→/dmtools-jira.
If you maintain a base config plus child agent variants, DMtools already supports root-level parent inheritance. See Config inheritance via parent for the merge and override rules.
- Back up
~/.dmtoolsbefore starting so you can restore the current installation, local cache, and wrapper scripts if the migration needs to be rolled back. - Replace any
IstiN/dmtoolsorraw.githubusercontent.com/.../main/install.shbootstrap commands withhttps://github.com/epam/dm.ai/releases/latest/download/install.shso the install points to the EPAM release asset path. - Preserve or merge your existing
dmtools.env,dmtools-local.env, and other local configuration files instead of replacing them blindly during reinstall. - Remove stale aliases, wrapper scripts, or PATH entries that bypass
~/.dmtools/bin/dmtools, and confirmwhich dmtools/Get-Command dmtoolsresolve to the new install. - Verify the migrated installation with
dmtools --versionanddmtools list, and update CI cache keys that still reference legacy install URLs. - If anything fails, roll back by restoring the backup copy of
~/.dmtoolsand reactivating the previous wrapper or PATH configuration.
Use a tagged installer only when you need to validate or roll back to a previously deployed release during migration work:
export DMTOOLS_VERSION=1.7.179
export DMTOOLS_RELEASE_TAG=v${DMTOOLS_VERSION}
curl -fsSL https://github.com/epam/dm.ai/releases/download/${DMTOOLS_RELEASE_TAG}/install.sh | bash -s -- ${DMTOOLS_RELEASE_TAG}For developers working on DMtools:
# Clone the repository
git clone https://github.com/epam/dm.ai.git
cd dm.ai
# Build and install locally
./buildInstallLocal.sh
# This will:
# 1. Build the fat JAR with ./gradlew :dmtools-core:shadowJar
# 2. Copy to ~/.dmtools/dmtools.jar
# 3. Use your locally built version# Download the JAR directly
DMTOOLS_VERSION=1.7.179 # Replace with desired version
wget -O ~/.dmtools/dmtools.jar \
"https://github.com/epam/dm.ai/releases/download/v${DMTOOLS_VERSION}/dmtools-v${DMTOOLS_VERSION}-all.jar"
# Create the wrapper script
cat > ~/bin/dmtools << 'EOF'
#!/bin/bash
java -jar ~/.dmtools/dmtools.jar "$@"
EOF
chmod +x ~/bin/dmtools
# Add to PATH in ~/.bashrc or ~/.zshrc
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcDMtools requires Java 17 or higher. The installer handles this automatically, but you can also install manually:
The install script will automatically install Java 17 using SDKMAN if Java is missing or outdated:
# The installer runs these commands internally:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 17-open
sdk default java 17-open# Using Homebrew
brew install openjdk@17
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc# Using SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 17-open
# Or using package manager (Ubuntu/Debian)
sudo apt update
sudo apt install openjdk-17-jdk# In WSL terminal
sudo apt update
sudo apt install openjdk-17-jdk
# Or use SDKMAN as shown abovejava -version
# Should show: openjdk version "17" or higherAfter installation, verify DMtools is working:
# Check version
dmtools --version
# Output: DMtools version v1.7.179 (or your installed version)
# List all available MCP tools
dmtools list
# Should show 67+ tools organized by category
# Test a simple command
dmtools help
# Shows usage information
# Test MCP tool (if configured)
dmtools cli_execute_command "echo 'DMtools is working!'"CRITICAL: DMtools requires configuration before use.
After installation, create a dmtools.env file to configure integrations:
Create dmtools.env in your project directory or home directory:
# In your project directory
touch dmtools.env
# Or globally in home directory
touch ~/dmtools.envdmtools.env to git - it contains sensitive API keys and tokens. This file is already in .gitignore.
Add your integration credentials to dmtools.env:
# Jira Configuration (Required for Jira tools)
JIRA_BASE_PATH=https://your-company.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your-jira-api-token
JIRA_AUTH_TYPE=Basic
# AI Provider (Required for AI features)
# Choose one or more:
GEMINI_API_KEY=your-gemini-api-key # Free tier available
OPEN_AI_API_KEY=your-openai-api-key # OpenAI
BEDROCK_ACCESS_KEY_ID=your-aws-key # AWS Bedrock (Claude)
BEDROCK_SECRET_ACCESS_KEY=your-aws-secret
BEDROCK_REGION=us-east-1
BEDROCK_MODEL_ID=anthropic.claude-3-5-sonnet-20241022-v2:0
# Confluence (Optional)
CONFLUENCE_BASE_PATH=https://your-company.atlassian.net/wiki
CONFLUENCE_EMAIL=your-email@company.com
CONFLUENCE_API_TOKEN=your-confluence-token
CONFLUENCE_DEFAULT_SPACE=TEAM
# Figma (Optional)
FIGMA_TOKEN=your-figma-personal-access-token
FIGMA_BASE_PATH=https://api.figma.com
# Azure DevOps (Optional)
ADO_BASE_PATH=https://dev.azure.com/your-organization
ADO_PAT=your-personal-access-token
ADO_PROJECT=your-project-name
# GitHub (Optional)
SOURCE_GITHUB_TOKEN=your-github-pat
# Configuration
DEFAULT_LLM=gemini
DEFAULT_TRACKER=jira- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Give it a name (e.g., "DMtools")
- Copy the token immediately (it won't be shown again)
- Add to
dmtools.env:JIRA_API_TOKEN=<your-token>
- Go to https://aistudio.google.com/app/apikey
- Click "Get API key"
- Create a new key or use existing
- Copy the key
- Add to
dmtools.env:GEMINI_API_KEY=<your-key>
Note: Gemini offers free tier with 15 requests/minute - perfect for getting started.
- Go to https://platform.openai.com/api-keys
- Create new secret key
- Copy immediately (shown only once)
- Add to
dmtools.env:OPEN_AI_API_KEY=<your-key>
- Create IAM user with Bedrock permissions
- Generate access key and secret
- Add to
dmtools.env:BEDROCK_ACCESS_KEY_ID=<your-key> BEDROCK_SECRET_ACCESS_KEY=<your-secret>
DMtools searches for configuration in this order:
- Environment variables (highest priority)
dmtools.envin current directorydmtools-local.envin current directorydmtools.envin dmtools.sh script directorydmtools-local.envin dmtools.sh script directory
Tip: Use dmtools-local.env for local overrides that won't be committed to git.
# Test Jira connection (if configured)
dmtools jira_get_ticket PROJ-1
# Test AI provider (if configured)
dmtools gemini_ai_chat "Hello, are you working?"
# List all available tools
dmtools listSee complete configuration examples:
After installation, you'll have:
~/.dmtools/
├── dmtools.jar # Main DMtools JAR file
├── dmtools.env # Environment configuration (created by you)
└── logs/ # Execution logs (created on first run)
~/bin/
└── dmtools # Executable wrapper script
~/.bashrc or ~/.zshrc
└── # PATH and alias additions
The installer adds these to your shell configuration:
# Added to ~/.bashrc or ~/.zshrc
export PATH="$HOME/bin:$PATH"
alias dmtools='java -jar ~/.dmtools/dmtools.jar'
# For development with local JAR
alias dmtools-dev='java -jar /path/to/your/dmtools-core/build/libs/dmtools-v*-all.jar'For containerized environments:
FROM openjdk:17-slim
# Install DMtools
RUN apt-get update && apt-get install -y curl bash \
&& curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/install.sh | bash \
&& apt-get clean
# Set up environment
ENV PATH="/root/bin:${PATH}"
WORKDIR /workspace
ENTRYPOINT ["dmtools"]Build and run:
docker build -t dmtools .
docker run -it dmtools --version# Re-run the installer
curl -fsSL https://github.com/epam/dm.ai/releases/latest/download/install.sh | bashFor tagged reinstall or rollback guidance, use the example in Upgrading from legacy installs.
dmtools --versionTo completely remove DMtools:
# Remove DMtools files
rm -rf ~/.dmtools
rm ~/bin/dmtools
# Remove from shell configuration
# Edit ~/.bashrc or ~/.zshrc and remove DMtools-related lines
# Reload shell
source ~/.bashrc # or ~/.zshrcIf you encounter problems, check the Troubleshooting Guide.
After installation:
- Configure environment variables
- Set up your first integration
- Configure an AI provider
- Run your first command
Need help? Report issues at github.com/epam/dm.ai/issues