https://github.com/dimer47/simplemdm-cli
CLI for the SimpleMDM API — manage your Apple devices from the terminal
https://github.com/dimer47/simplemdm-cli
Last synced: 23 days ago
JSON representation
CLI for the SimpleMDM API — manage your Apple devices from the terminal
- Host: GitHub
- URL: https://github.com/dimer47/simplemdm-cli
- Owner: dimer47
- Created: 2026-05-11T08:27:30.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-11T08:48:25.000Z (about 2 months ago)
- Last Synced: 2026-05-11T10:41:05.725Z (about 2 months ago)
- Language: Go
- Size: 70.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.fr.md
Awesome Lists containing this project
README
# simplemdm-cli
CLI pour l'API SimpleMDM -- gerez vos appareils Apple depuis le terminal.
## Fonctionnalites
- **116 outils MCP** et **130+ commandes CLI** couvrant l'integralite de l'API SimpleMDM
- **Stockage securise de la cle API** : stockee dans le gestionnaire d'identifiants de votre systeme (macOS Keychain, Windows Credential Manager, Linux Secret Service)
- **Multi-contexte** : gerez plusieurs comptes SimpleMDM
- **Sortie flexible** : table, JSON, YAML, CSV
- **Multi-plateforme** : macOS, Linux, Windows (amd64 et arm64)
- **Integration MCP** : 116 outils pour Claude Code, VS Code, JetBrains
- **Mise a jour automatique** : verification automatique des mises a jour et mise a jour en une commande
## Prerequis
- Un compte [SimpleMDM](https://simplemdm.com)
- Une **cle API SimpleMDM** (creee depuis [Settings > API](https://a.simplemdm.com/admin/settings/api))
## Installation
### Methode 1 : Telecharger le binaire (recommande)
Rendez-vous sur la page [Releases](https://github.com/dimer47/simplemdm-cli/releases/latest) et telechargez l'archive correspondant a votre plateforme.
Ou en une seule commande :
**macOS (Apple Silicon -- M1/M2/M3/M4) :**
```bash
curl -sL https://github.com/dimer47/simplemdm-cli/releases/latest/download/simplemdm-cli_darwin_arm64.tar.gz | tar xz
sudo mv simplemdm-cli /usr/local/bin/
```
**macOS (Intel) :**
```bash
curl -sL https://github.com/dimer47/simplemdm-cli/releases/latest/download/simplemdm-cli_darwin_amd64.tar.gz | tar xz
sudo mv simplemdm-cli /usr/local/bin/
```
**Linux (amd64) :**
```bash
curl -sL https://github.com/dimer47/simplemdm-cli/releases/latest/download/simplemdm-cli_linux_amd64.tar.gz | tar xz
sudo mv simplemdm-cli /usr/local/bin/
```
**Linux (arm64 -- Raspberry Pi, etc.) :**
```bash
curl -sL https://github.com/dimer47/simplemdm-cli/releases/latest/download/simplemdm-cli_linux_arm64.tar.gz | tar xz
sudo mv simplemdm-cli /usr/local/bin/
```
**Windows :**
Telechargez `simplemdm-cli_windows_amd64.zip` depuis la page [Releases](https://github.com/dimer47/simplemdm-cli/releases/latest), extrayez l'archive et ajoutez le dossier a votre `PATH`.
### Methode 2 : Depuis les sources (necessite Go 1.25+)
```bash
go install github.com/dimer47/simplemdm-cli@latest
```
Le binaire sera installe dans `$GOPATH/bin/` (generalement `~/go/bin/`). Assurez-vous que ce repertoire est dans votre `PATH`.
### Methode 3 : Compilation locale
```bash
git clone https://github.com/dimer47/simplemdm-cli.git
cd simplemdm-cli
go build -o simplemdm-cli .
./simplemdm-cli version
```
### Verifier l'installation
```bash
simplemdm-cli version
# simplemdm-cli 1.0.0 (abc1234) built 2026-05-11T10:00:00Z
```
## Mise a jour
Le CLI verifie automatiquement la disponibilite de nouvelles versions au demarrage et vous avertit lorsqu'une mise a jour est disponible.
```bash
# Mettre a jour vers la derniere version
simplemdm-cli self-update
```
La mise a jour est telechargee depuis GitHub Releases et remplace le binaire actuel sur place. Si le binaire se trouve dans un repertoire protege (ex. `/usr/local/bin/`), essayez d'executer la commande avec `sudo`.
## Demarrage rapide
### 1. Obtenir une cle API SimpleMDM
1. Connectez-vous a la [console d'administration SimpleMDM](https://a.simplemdm.com)
2. Allez dans **Settings > API**
3. Copiez votre cle API
### 2. Configurer le CLI
```bash
simplemdm-cli auth login
```
Repondez aux 2 invites :
```
Context name (default): Enter # Appuyez sur Entree pour "default"
SimpleMDM API key: •••••••••••• # Collez votre cle API (masquee)
```
La cle API est stockee dans le **gestionnaire d'identifiants de votre systeme** (macOS Keychain, Windows Credential Manager ou Linux Secret Service) -- chiffree, jamais ecrite en clair sur le disque.
### 3. Tester
```bash
# Obtenir les details de votre compte
simplemdm-cli account get
# Lister vos appareils
simplemdm-cli device list
# Sortie JSON
simplemdm-cli device list --json
```
## Configuration
### Priorite de resolution de la cle API
| Priorite | Source | Cas d'usage |
|----------|--------|-------------|
| 1 | Flag `--api-key` / `-k` | Tests ponctuels |
| 2 | Variable d'env. `SMDM_API_KEY` | CI/CD, scripts |
| 3 | Gestionnaire d'identifiants systeme | Usage quotidien (via `auth login`) |
### Multi-contexte (plusieurs comptes SimpleMDM)
```bash
# Configurer un contexte "production"
simplemdm-cli auth login
# -> Entrez "production" comme nom de contexte
# Configurer un contexte "staging"
simplemdm-cli auth login
# -> Entrez "staging" comme nom de contexte
# Lister tous les contextes (* = actif)
simplemdm-cli auth list
# * production (****abcd1234)
# staging (****efgh5678)
# Changer de contexte
simplemdm-cli auth switch staging
# Utiliser un contexte pour une seule commande
simplemdm-cli device list --context production
# Verifier le statut (la cle est-elle toujours valide ?)
simplemdm-cli auth status
# Supprimer un contexte
simplemdm-cli auth remove staging
```
## Utilisation
### Compte
```bash
simplemdm-cli account get # Details du compte
simplemdm-cli account update --name "My Company" # Mettre a jour le compte
```
### Appareils
```bash
simplemdm-cli device list # Lister tous les appareils
simplemdm-cli device list --json # Sortie JSON
simplemdm-cli device list --search "MacBook" # Rechercher
simplemdm-cli device get # Details d'un appareil
simplemdm-cli device create --name "New Device" # Creer
simplemdm-cli device update --name "Renamed" # Renommer
simplemdm-cli device delete # Supprimer
simplemdm-cli device refresh # Rafraichir les infos
simplemdm-cli device push-apps # Pousser les apps
simplemdm-cli device lock --message "Lost" --pin 1234 # Verrouiller
simplemdm-cli device wipe # Effacer
simplemdm-cli device restart # Redemarrer
simplemdm-cli device shutdown # Eteindre
simplemdm-cli device clear-passcode # Effacer le code
simplemdm-cli device update-os # Mettre a jour l'OS
simplemdm-cli device unenroll # Desenroler
```
### Appareil -- Mode perdu (iOS supervise)
```bash
simplemdm-cli device lost-mode-enable --message "Call IT" --phone-number "+1234567890"
simplemdm-cli device lost-mode-disable
simplemdm-cli device lost-mode-play-sound
simplemdm-cli device lost-mode-update-location
```
### Appareil -- Commandes avancees
```bash
simplemdm-cli device bluetooth-enable # Activer le Bluetooth
simplemdm-cli device bluetooth-disable # Desactiver le Bluetooth
simplemdm-cli device remote-desktop-enable # Activer le Bureau a distance
simplemdm-cli device remote-desktop-disable # Desactiver le Bureau a distance
simplemdm-cli device rotate-firmware-password # Rotation du mot de passe firmware
simplemdm-cli device rotate-recovery-lock # Rotation du verrou de recuperation
simplemdm-cli device rotate-filevault-key # Rotation de la cle FileVault
simplemdm-cli device set-admin-password --new-password "..."
simplemdm-cli device rotate-admin-password
simplemdm-cli device clear-firmware-password
simplemdm-cli device clear-recovery-lock
simplemdm-cli device clear-restrictions-password
simplemdm-cli device set-timezone --timezone "America/New_York"
```
### Appareil -- Attributs personnalises et utilisateurs
```bash
simplemdm-cli device custom-attributes # Lister les valeurs des attributs
simplemdm-cli device set-custom-attribute department --value "Engineering"
simplemdm-cli device profiles # Lister les profils de l'appareil
simplemdm-cli device users # Lister les utilisateurs de l'appareil
simplemdm-cli device delete-user # Supprimer un utilisateur
```
### Applications
```bash
simplemdm-cli app list # Lister toutes les apps
simplemdm-cli app get # Details d'une app
simplemdm-cli app create --name "My App" --app-store-id 123 # Creer depuis l'App Store
simplemdm-cli app create --binary ./app.ipa # Telecharger une app enterprise
simplemdm-cli app update --binary ./app.ipa # Mettre a jour le binaire
simplemdm-cli app delete # Supprimer
simplemdm-cli app installs # Lister les installations
simplemdm-cli app managed-configs # Lister les configs gerees
simplemdm-cli app managed-config-create --key "url" --value "https://..."
simplemdm-cli app managed-configs-push # Pousser les configs vers les appareils
simplemdm-cli app managed-config-delete # Supprimer une config
```
### Groupes d'assignation
```bash
simplemdm-cli assignment-group list # Lister les groupes
simplemdm-cli assignment-group get # Details d'un groupe
simplemdm-cli assignment-group create --name "Team" # Creer
simplemdm-cli assignment-group update --name "New Name" # Mettre a jour
simplemdm-cli assignment-group delete # Supprimer
simplemdm-cli assignment-group assign-app --app-id 10 # Assigner une app
simplemdm-cli assignment-group assign-device --device-id 121
simplemdm-cli assignment-group push-apps # Pousser les apps
simplemdm-cli assignment-group clone # Cloner le groupe
```
### Profils
```bash
simplemdm-cli profile list # Lister les profils
simplemdm-cli profile get # Details d'un profil
simplemdm-cli profile assign-device --device-id 121 # Assigner a un appareil
simplemdm-cli profile unassign-device --device-id 121 # Desassigner
```
### Profils de configuration personnalises
```bash
simplemdm-cli custom-configuration-profile list # Lister les profils
simplemdm-cli custom-configuration-profile delete # Supprimer
simplemdm-cli custom-configuration-profile push-device --device-id 121
simplemdm-cli custom-configuration-profile remove-device --device-id 121
```
### Attributs personnalises
```bash
simplemdm-cli custom-attribute list # Lister les attributs
simplemdm-cli custom-attribute get # Details d'un attribut
simplemdm-cli custom-attribute create --name "department" # Creer
simplemdm-cli custom-attribute delete # Supprimer
```
### Declarations personnalisees
```bash
simplemdm-cli custom-declaration list # Lister les declarations
simplemdm-cli custom-declaration delete # Supprimer
```
### Groupes d'appareils
```bash
simplemdm-cli device-group list # Lister les groupes
simplemdm-cli device-group get # Details d'un groupe
simplemdm-cli device-group assign-device --device-id 121
```
### Serveurs DEP
```bash
simplemdm-cli dep-server list # Lister les serveurs DEP
simplemdm-cli dep-server get # Details d'un serveur
simplemdm-cli dep-server devices # Lister les appareils DEP
simplemdm-cli dep-server sync # Synchroniser le serveur
```
### Enrollements
```bash
simplemdm-cli enrollment list # Lister les enrollements
simplemdm-cli enrollment get # Details d'un enrollement
simplemdm-cli enrollment delete # Supprimer
simplemdm-cli enrollment send-invitation --contact "user@company.com"
```
### Applications installees
```bash
simplemdm-cli installed-app get # Details de l'app
simplemdm-cli installed-app delete # Supprimer (desinstaller)
simplemdm-cli installed-app update # Mettre a jour l'app
```
### Scripts et taches de script
```bash
simplemdm-cli script list # Lister les scripts
simplemdm-cli script get # Details d'un script
simplemdm-cli script delete # Supprimer
simplemdm-cli script-job list # Lister les taches
simplemdm-cli script-job get # Details d'une tache
simplemdm-cli script-job create --script-id 100 --device-ids "121,122"
simplemdm-cli script-job cancel # Annuler une tache
```
### Journaux
```bash
simplemdm-cli log list # Lister les journaux
simplemdm-cli log get # Details d'un journal
```
### Certificat Push
```bash
simplemdm-cli push-certificate get # Details du certificat
```
## Variables d'environnement
| Variable | Description | Valeur par defaut |
|----------|-------------|-------------------|
| `SMDM_API_KEY` | Cle API SimpleMDM | -- |
| `SMDM_OUTPUT` | Format de sortie : `table`, `json`, `yaml`, `csv` | `table` |
| `SMDM_DEBUG` | Mode debug (`true`/`false`) | `false` |
| `SMDM_CONTEXT` | Contexte actif | `default` |
| `NO_COLOR` | Desactiver les couleurs | -- |
## Completion shell
```bash
# Bash
simplemdm-cli completion bash > /etc/bash_completion.d/simplemdm-cli
# Zsh (ajoutez a votre .zshrc)
simplemdm-cli completion zsh > "${fpath[1]}/_simplemdm-cli"
# Fish
simplemdm-cli completion fish > ~/.config/fish/completions/simplemdm-cli.fish
# PowerShell
simplemdm-cli completion powershell > simplemdm-cli.ps1
```
## Integration MCP (Claude Code, VS Code, JetBrains)
Le CLI inclut un serveur [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) integre exposant **116 outils** pour les assistants IA.
### Configuration
Ajoutez ceci a vos parametres Claude Code (ou VS Code / JetBrains avec l'extension Claude) :
```json
{
"mcpServers": {
"simplemdm": {
"command": "simplemdm-cli",
"args": ["mcp-serve"],
"env": {
"SMDM_API_KEY": "your-api-key-here"
}
}
}
}
```
> Si vous avez deja configure la cle API via `simplemdm-cli auth login`, le serveur MCP utilisera automatiquement votre gestionnaire d'identifiants systeme -- pas besoin de la variable d'environnement `SMDM_API_KEY`.
### Outils MCP disponibles
| Categorie | Outils | Description |
|-----------|--------|-------------|
| **Compte** | `account-get`, `account-update` | Gestion des details du compte |
| **Applications** | `app-list`, `app-get`, `app-create`, `app-update`, `app-delete`, `app-installs`, `app-managed-configs`, `app-managed-config-create`, `app-managed-configs-push`, `app-managed-config-delete` | Cycle de vie complet des apps |
| **Groupes d'assignation** | `assignment-group-list`, `assignment-group-get`, `assignment-group-create`, `assignment-group-update`, `assignment-group-delete`, `assignment-group-assign-app`, `assignment-group-assign-device`, `assignment-group-push-apps`, `assignment-group-clone`, ... | Gestion des groupes |
| **Attributs personnalises** | `custom-attribute-list`, `custom-attribute-get`, `custom-attribute-create`, `custom-attribute-delete` | Attributs personnalises |
| **Profils de config. personnalises** | `custom-configuration-profile-list`, `custom-configuration-profile-delete`, `custom-configuration-profile-push-device`, `custom-configuration-profile-remove-device` | Gestion des profils |
| **Declarations personnalisees** | `custom-declaration-list`, `custom-declaration-delete` | Gestion des declarations |
| **Serveurs DEP** | `dep-server-list`, `dep-server-get`, `dep-server-devices`, `dep-server-sync` | Gestion DEP |
| **Groupes d'appareils** | `device-group-list`, `device-group-get`, `device-group-assign-device` | Gestion des groupes |
| **Appareils** | `device-list`, `device-get`, `device-create`, `device-update`, `device-delete`, `device-lock`, `device-wipe`, `device-restart`, `device-shutdown`, `device-refresh`, `device-push-apps`, `device-update-os`, `device-lost-mode-*`, ... | Gestion complete des appareils |
| **Enrollements** | `enrollment-list`, `enrollment-get`, `enrollment-delete`, `enrollment-send-invitation` | Gestion des enrollements |
| **Apps installees** | `installed-app-get`, `installed-app-delete`, `installed-app-update` | Gestion des apps |
| **Journaux** | `log-list`, `log-get` | Acces aux journaux |
| **Profils** | `profile-list`, `profile-get`, `profile-assign-device`, `profile-unassign-device` | Gestion des profils |
| **Certificat Push** | `push-certificate-get` | Infos du certificat |
| **Scripts** | `script-list`, `script-get`, `script-delete` | Gestion des scripts |
| **Taches de script** | `script-job-list`, `script-job-get`, `script-job-create`, `script-job-cancel` | Gestion des taches |
### Utilisation dans Claude Code
Une fois configure, vous pouvez simplement dire :
- *"Liste mes appareils SimpleMDM"*
- *"Verrouille l'appareil 121 avec le message 'Contactez le service IT'"*
- *"Quelles apps sont installees sur l'appareil 122 ?"*
- *"Pousse toutes les apps vers le groupe d'assignation Engineering"*
- *"Cree une tache de script pour le script 100 sur les appareils 121 et 122"*
Claude appellera automatiquement les bons outils MCP.
## Developpement
```bash
# Cloner
git clone https://github.com/dimer47/simplemdm-cli.git
cd simplemdm-cli
# Compiler
go build -o simplemdm-cli .
# Lancer les tests
go test ./...
# Analyse statique
go vet ./...
```
### Creer une nouvelle release
```bash
git tag v1.0.0
git push origin v1.0.0
# GitHub Actions compile et publie automatiquement
```
## Licence
MIT