Communitygithub.com

V4TIME/V4SKILL

Envoyer et recevoir des iMessages/SMS via l'interface en ligne de commande imsg sur macOS.

Qu'est-ce que V4SKILL ?

Cette compétence permet aux agents IA d'interagir directement avec l'application Messages de macOS en utilisant l'outil en ligne de commande `imsg`. Elle est utile pour envoyer des SMS ou iMessages, consulter l'historique des conversations et surveiller les nouveaux messages, le tout depuis le terminal. Elle prend en charge macOS uniquement (via Messages.app) et nécessite une installation préalable de `imsg` via Homebrew ainsi que des autorisations système (accès complet au disque et automatisation). L'agent peut lister les chats, afficher l'historique, envoyer des messages (texte ou avec pièce jointe) et surveiller les nouveaux messages en temps réel. Des options permettent de forcer le service iMessage ou SMS. Les règles incluent la confirmation systématique du destinataire et du contenu avant envoi, l'interdiction d'envoyer vers des numéros inconnus sans approbation, la vérification des chemins de fichiers, et une limitation du rythme pour éviter les spams. Un workflow typique consiste à trouver un contact, confirmer avec l'utilisateur, puis envoyer le message.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/V4TIME/V4SKILL/tree/HEAD/apple/imessage

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

iMessage

Utilisez imsg pour lire et envoyer des iMessages/SMS via l'application Messages de macOS.

Prérequis

  • macOS avec Messages.app connecté
  • Installation : brew install steipete/tap/imsg
  • Accordez l'accès complet au disque pour le terminal (Paramètres système → Confidentialité → Accès complet au disque)
  • Accordez l'autorisation d'automatisation pour Messages.app lorsque vous y êtes invité

Quand l'utiliser

  • L'utilisateur demande d'envoyer un iMessage ou un texto
  • Lire l'historique des conversations iMessage
  • Vérifier les discussions récentes de Messages.app
  • Envoyer vers des numéros de téléphone ou des identifiants Apple

Quand NE PAS l'utiliser

  • Messages Telegram/Discord/Slack/WhatsApp → utilisez la passerelle appropriée
  • Gestion de conversations de groupe (ajout/suppression de membres) → non pris en charge
  • Envoi groupé/massif → confirmez toujours d'abord avec l'utilisateur

Référence rapide

Lister les conversations

imsg chats --limit 10 --json

Voir l'historique

# Par identifiant de conversation
imsg history --chat-id 1 --limit 20 --json

# Avec informations sur les pièces jointes
imsg history --chat-id 1 --limit 20 --attachments --json

Envoyer des messages

# Texte uniquement
imsg send --to "+14155551212" --text "Bonjour !"

# Avec pièce jointe
imsg send --to "+14155551212" --text "Regarde ça" --file /chemin/vers/image.jpg

# Forcer iMessage ou SMS
imsg send --to "+14155551212" --text "Salut" --service imessage
imsg send --to "+14155551212" --text "Salut" --service sms

Surveiller les nouveaux messages

imsg watch --chat-id 1 --attachments

Options de service

  • --service imessage — Forcer iMessage (nécessite que le destinataire ait iMessage)
  • --service sms — Forcer SMS (bulle verte)
  • --service auto — Laisser Messages.app décider (par défaut)

Règles

  1. Confirmer toujours le destinataire et le contenu du message avant d'envoyer
  2. Ne jamais envoyer vers des numéros inconnus sans approbation explicite de l'utilisateur
  3. Vérifier que les chemins de fichiers existent avant de les joindre
  4. Ne pas spammer — limitez votre propre rythme

Exemple de flux de travail

Utilisateur : "Envoie un texto à maman pour dire que je serai en retard"

# 1. Trouver la conversation de maman
imsg chats --limit 20 --json | jq '.[] | select(.displayName | contains("Maman"))'

# 2. Confirmer avec l'utilisateur : "Maman trouvée au +1555123456. Envoyer 'Je serai en retard' via iMessage ?"

# 3. Envoyer après confirmation
imsg send --to "+1555123456" --text "Je serai en retard"

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

Skills associés