diff --git a/config/ys.configuration.json b/config/ys.configuration.json
new file mode 100644
index 0000000..5e14c1d
--- /dev/null
+++ b/config/ys.configuration.json
@@ -0,0 +1,16 @@
+{
+ "comments": {
+ "lineComment": "#"
+ },
+ "brackets": [
+ ["{", "}"],
+ ["[", "]"],
+ ["(", ")"]
+ ],
+ "autoClosingPairs": [
+ {"open":"(", "close":")", "notIn":["string", "comment"]},
+ {"open":"[", "close":"]", "notIn":["string", "comment"]},
+ {"open":"{", "close":"}", "notIn":["string", "comment"]},
+ {"open":"\"", "close":"\"", "notIn":["string", "comment"]}
+ ]
+}
\ No newline at end of file
diff --git a/images/svg/dark/ys.svg b/images/svg/dark/ys.svg
new file mode 100644
index 0000000..9595253
--- /dev/null
+++ b/images/svg/dark/ys.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/images/svg/light/ys.svg b/images/svg/light/ys.svg
new file mode 100644
index 0000000..9595253
--- /dev/null
+++ b/images/svg/light/ys.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/syntaxes/ys.json b/syntaxes/ys.json
new file mode 100644
index 0000000..76c4420
--- /dev/null
+++ b/syntaxes/ys.json
@@ -0,0 +1,44 @@
+{
+ "name": "ys",
+ "scopeName": "source.ys",
+ "patterns": [
+ {
+ "include": "#comment"
+ },
+ {
+ "name": "keyword.control.ys",
+ "match": "(?=|<|>|&&|\\|\\||!|&|\\||\\^|~|<<|>>)\\b"
+ },
+ {
+ "name": "keyword.function.ys",
+ "match": "\\b(?:\\w+)\\b(?=\\s*\\()"
+ },
+ {
+ "name": "string.quoted.double.ys",
+ "match": "\"(?:\\\\\"|[^\"])*\""
+ },
+ {
+ "name": "comment.line.ys",
+ "match": "#.*$"
+ },
+ {
+ "name": "support.function.parameter.ys",
+ "match": "-[a-zA-Z0-9_\\-]+"
+ }
+ ],
+ "repository": {
+ "comment": {
+ "patterns": [
+ {
+ "match": "^\\s*#.*$",
+ "name": "comment.line.number-sign.ys"
+ }
+ ]
+ }
+ },
+ "uuid": "12345678-1234-1234-1234-123456789012"
+}
\ No newline at end of file