All Projects → ZekeSnider → Jared

ZekeSnider / Jared

Licence: apache-2.0
An easily extensible chat bot for iMessage written in Swift.

Programming Languages

swift
15916 projects
applescript
352 projects

Labels

Projects that are alternatives of or similar to Jared

Fondbot
Chatbot framework
Stars: ✭ 102 (-12.82%)
Mutual labels:  chatbot
Botonomous
A PHP Framework For Creating Autonomous Slack Bots
Stars: ✭ 109 (-6.84%)
Mutual labels:  chatbot
Wechatrobot
个人微信号自动回复、陪聊、查天气、查垃圾分类。新增查看今日新闻和知乎热榜功能。
Stars: ✭ 115 (-1.71%)
Mutual labels:  chatbot
Applozic Ios Sdk
iOS Real Time Chat & Messaging SDK
Stars: ✭ 104 (-11.11%)
Mutual labels:  chatbot
Lic2019 Competition
2019语言与智能技术竞赛-基于知识图谱的主动聊天
Stars: ✭ 109 (-6.84%)
Mutual labels:  chatbot
Reddit Karma Farming Bot
"Is karma really that important to you? Damn bro, you need a life" - YouTube Comment
Stars: ✭ 111 (-5.13%)
Mutual labels:  chatbot
Botml
Powerful markup language for modern chatbots.
Stars: ✭ 98 (-16.24%)
Mutual labels:  chatbot
Stanford Tensorflow Tutorials
This repository contains code examples for the Stanford's course: TensorFlow for Deep Learning Research.
Stars: ✭ 10,098 (+8530.77%)
Mutual labels:  chatbot
Ovh Chatbot
The goal of this tool is to help you to have fast responses when you have some problems with OVH services.
Stars: ✭ 109 (-6.84%)
Mutual labels:  chatbot
Alpha
Craft your own web-based chatbot
Stars: ✭ 113 (-3.42%)
Mutual labels:  chatbot
Chatbot
Русскоязычный чатбот
Stars: ✭ 106 (-9.4%)
Mutual labels:  chatbot
Wechaty
Conversational RPA SDK for Chatbot Makers
Stars: ✭ 11,647 (+9854.7%)
Mutual labels:  chatbot
Cathy
Artificial intelligence (AI) chat bot for Discord written in Python 3
Stars: ✭ 112 (-4.27%)
Mutual labels:  chatbot
Chatgirl
ChatGirl is an AI ChatBot based on TensorFlow Seq2Seq Model. ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人。(包含预处理过的 twitter 英文数据集,训练,运行,工具代码,来波 Star 。)QQ群:167122861
Stars: ✭ 105 (-10.26%)
Mutual labels:  chatbot
Nlp Models Tensorflow
Gathers machine learning and Tensorflow deep learning models for NLP problems, 1.13 < Tensorflow < 2.0
Stars: ✭ 1,603 (+1270.09%)
Mutual labels:  chatbot
Addchat Laravel
AddChat Laravel is a Laravel chat package. Live chat widget for Laravel that also includes multi-user chat, group permissions, customer support chat & more.
Stars: ✭ 99 (-15.38%)
Mutual labels:  chatbot
Twitch Bot
🤖 Easily create chat bots for Twitch.tv
Stars: ✭ 111 (-5.13%)
Mutual labels:  chatbot
Jarvis
J.A.R.V.I.S - Just Another Rudimentary Verbal Instruction Shell
Stars: ✭ 117 (+0%)
Mutual labels:  chatbot
Know Your Intent
State of the Art results in Intent Classification using Sematic Hashing for three datasets: AskUbuntu, Chatbot and WebApplication.
Stars: ✭ 116 (-0.85%)
Mutual labels:  chatbot
Ai Chatbot Framework
A python chatbot framework with Natural Language Understanding and Artificial Intelligence.
Stars: ✭ 1,564 (+1236.75%)
Mutual labels:  chatbot

Build Status Carthage compatible Swift 5.0

Jared - An iMessage chat bot

Download Links

Please check out the release page for an up to date pre-compiled download.

What is Jared?

A powerful and easily extensible iMessage bot. It makes it possible to add chat bot features to any iMessage conversation. It includes some basic commands built in. API integrations, games, custom emotes, and much more can be added by using webhooks, the REST API, or by installing plugins.

Jared usage screenshot

Any pull requests and new GitHub issues are much appreciated! If you would like to develop a plugin for Jared, see the plugin section below. I'm always available on Twitter if you have any ideas/suggestions.

Installation

Jared Main Window

Jared must be run a machine running macOS with an active messages account logged in. It has only been tested on 10.14 Mojave and later. It may work on old versions of macOS but this is not guaranteed as there may have been changes to the message database's schema. If you don't want Jared posting as you, it is recommended that you create a new Apple ID and user account on your mac, and run it in the background under that user. That way it's not using your main Apple ID.

  1. Download Jared.app and move it to the applications folder.

See download section at the top.

  1. Run Jared.app, Allow Jared "Full Disk Access" in System Preferences.

This is required because of macOS permissions that limit access to the messages database.

  1. Grant access to automate Messages

If you are running macOS Catalina or later, you will need to allow Jared access to automate the message app. This allows Jared to send messages.

  1. (Optional) Allow contacts access

You can optionally allow Jared access to your contacts so that it can provide and update names of contacts. The contacts are used to set/retrieve names only.

  1. (Optional) Start REST API server

If you wish to use the REST API, you will need to enable it. If you have a firewall enabled on your mac, you will see a dialog prompting you to allow Jared access to the port it is binding.

Built in commands

For reference, here is a list of the commands built in to Jared. Because functionality can be added with plugins, the built in functionality is kept light.

  • /help: Lists all commands. /help,[command name] will give you information on a specific route.
  • /reload: Reload plugins
  • /enable: Enables Jared
  • /disable: Disables Jared
  • /ping: Check if the chat bot is available
  • /version: Get the version of Jared running
  • /send: Send a message repeatedly
  • /schedule: Schedule messages
  • /name: Change what Jared calls you
  • /whoami: Get your name
  • /barf: Returns a json representation of your message, used for debugging
  • Thank you Jared: Thanks Jared

Configuration

A configuration file is located at ~/Library/Application Support/Jared/config.json which allows you to:

  • Configure webhooks
  • Set REST API port
  • Disable specific routes

See config-sample.json for an example.

Extensions

Jared Provides a variety of APIs to allow you to easily add your own commands, automate messages, and more. For all API documentation, see the documentation hub.

Plugins

Additional routes can be added via modularized plugins, written in native Swift code. Plugins are loaded dynamically from the ~/Library/Application Support/Jared/Plugins folder. To install a module, drag it in there and then send /reload to Jared, or click Reload Plugins in the UI.

For more information on developing your own plugins, see the plugin documentation. If you developed any plugins, please contact me a link so I can add a link here! I will be working on a few extra modules of my own as well, and will add them here when they are complete.

Webhooks

Jared supports webhooks for sending your server information about incoming and outgoing messages. Your server can respond to these requests to send messages, or use the REST API to send messages at any time. To configure webhooks, add them to the config.json mentioned above. For more info on the webhooks API, check out the webhook documentation.

REST API

Jared contains a web server with a REST API that can be enabled. This allows you make HTTP requests to send messages to any recipient. For more information, check out the REST API documentation.

How Jared works

Jared reads from the Messages database on a set interval and queries for new messages. It provides a routing framework for actioning on messages, and uses AppleScript to send outgoing messages. It's also multi-threaded so it can take care of multiple requests at once. Jared allows expansion via .bundle plugin files, webhooks, and a REST API. This allows commands to be added without modifying the main Jared code base.

I've tried using private APIs such as MessagesKit to send/receive messages to no avail so far. If you have any leads on this front I'd love to hear about it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].