Не столь давно Skype открыл для всех Skype for Web (beta).

Официально API (пока) не оглашено, и, вероятно, ��удет еще изменяться.

Но! Можно забыть мучения со Skype4Com, пляски со Skype4Py, попрощаться со skype-open-source, выкинуть в корзину чтение SQLite'ом из профиля пользователя и т.п.

Итак, с чего начать написание своего клиента/бота —

Попавшиеся под руку исходники:
  • С/C++:
    плагин для Miranda NG
    плагин для Pidgin (спасибо за ссылку apollo2k4)
  • Java:
    Skype4J
  • .NET: (позволил себе собрать IKVM'ом предыдущий пункт)
    skype4j-0.1.5 (last commit) [UPD 2015-12-01]
    History
    skype4j-0.0.9 (last commit) [UPD 2015-11-30]
    skype4j-0.0.9 (last commit) [UPD 2015-10-16]
    skype4j-0.0.9 (last commit) [UPD 2015-08-02]
    skype4j-0.0.9 (last commit) [UPD 2015-07-27]
    skype4j-0.0.9 (last commit) [UPD 2015-07-22]
    skype4j-0.0.9 (last commit) [UPD 2015-07-21]
    skype4j-0.0.9
    Грязный пример
    static void Main(string[] args)
            {
                string username = "user";
                string password = "password";
    
                var skypeBuilder = new SkypeBuilder(user, password).withAllResources();
                skype = skypeBuilder.build();
                skype.login();
                skype.getEventDispatcher().registerListener(new SkypeListener());
                skype.subscribe();
    
                //send message
                var chat = ChatImpl.createChat(skype, "8:" + "MyFriendSharikoff") as ChatIndividual;
                chat.sendMessage(Message.fromHtml("Hello my dear friend. Bye-bye!"));
    
                //do whatever you want
                //грабь корованы
    
                skype.logout();
           }
    
            public class SkypeListener : Listener
            {
                [EventHandler]
                public void OnMessage(MessageReceivedEvent e)
                {
                    var msg = e.getMessage();
                    var from = msg.getSender();
                    var txt = msg.getMessage();
    
                    var chat = msg.getChat();
                    string cap = "";
                    var ndividualChat = chat as IndividualChat;
                    if (ndividualChat != null) cap = ndividualChat.getPartner().getUsername();
    
                    var groupChat = chat as GroupChat;
                    if (groupChat != null)
                    {
                        cap = groupChat.getTopic();
                        if (string.IsNullOrEmpty(cap)) cap = "...list of users here";
                    }
    
                    Console.WriteLine("From: {0} To:{1} Text:{2}", from.getUsername(), cap, txt);
                }
    
            }
    

В общем, можно доставать из архивов и переделывать свои старые WeatherBot, MailCheckerBot, ViktorinaBot и прочая-прочая.

Just FYI, как-то не нашел на хабре.