diff --git a/src/Makefile b/src/Makefile
index fc7b8e3..11ea55c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -5,3 +5,5 @@
 
 mkinitrd:
 	$(MAKE) -C mkinitrd
+
+.PHONY: kernel mkinitrd
diff --git a/src/mkinitrd/.gitignore b/src/mkinitrd/.gitignore
new file mode 100644
index 0000000..de6da76
--- /dev/null
+++ b/src/mkinitrd/.gitignore
@@ -0,0 +1 @@
+mkinitrd
\ No newline at end of file
diff --git a/src/mkinitrd/Makefile b/src/mkinitrd/Makefile
index e69de29..66b7893 100644
--- a/src/mkinitrd/Makefile
+++ b/src/mkinitrd/Makefile
@@ -0,0 +1,11 @@
+OBJECTS = main.o
+JAYROOT = ../../
+CFLAGS = -O2 -I$(JAYROOT)/include -Wall
+
+mkinitrd: $(OBJECTS)
+	$(CC) -o $@ $^
+
+clean:
+	rm -f *.o mkinitrd
+
+.PHONY: clean
diff --git a/src/mkinitrd/compile_commands.json b/src/mkinitrd/compile_commands.json
index 0637a08..97322af 100644
--- a/src/mkinitrd/compile_commands.json
+++ b/src/mkinitrd/compile_commands.json
@@ -1 +1,15 @@
-[]
\ No newline at end of file
+[
+    {
+        "arguments": [
+            "cc",
+            "-c",
+            "-O2",
+            "-I../..//include",
+            "-o",
+            "main.o",
+            "main.c"
+        ],
+        "directory": "/home/ch/dev/bluejay/src/mkinitrd",
+        "file": "main.c"
+    }
+]
\ No newline at end of file
diff --git a/src/mkinitrd/main.c b/src/mkinitrd/main.c
index ded5af0..228b04b 100644
--- a/src/mkinitrd/main.c
+++ b/src/mkinitrd/main.c
@@ -2,13 +2,65 @@
 #include <stdio.h>
 #include <string.h>
 
+int file_size(FILE *file)
+{
+	fseek(file, 0, SEEK_END);
+	int size = ftell(file);
+	fseek(file, 0, SEEK_SET);
+	return size;
+}
+
 int main(int argc, char **argv)
 {
 	if (argc == 1 || (argc > 1 && !strcmp(argv[1], "-h")))
 	{
-		printf("%s <output> [input...]\n", argv[0]);
+		fprintf(stderr, "%s <output> [input...]\n", argv[0]);
 		return argc == 1;
 	}
 
-	FILE *out = fopen(argv[1], "w");
+	FILE *out; /* output file */
+
+	if (!strcmp(argv[1], "-"))
+		out = stdin;
+	else
+		out = fopen(argv[1], "w");
+
+	if (!out)
+	{
+		fprintf(stderr, "Failed to open %s\n", argv[1]);
+		return 1;
+	}
+
+	/* Header */
+	int num_files = argc - 2;
+	struct initrd_global_header header = {
+		.magic = INITRD_MAGIC,
+		.num_files = num_files,
+	};
+
+	fwrite(&header, sizeof(header), 1, out);
+
+	for (int i = 0; i < num_files; i++)
+	{
+		FILE *in = fopen(argv[i + 2], "rb");
+		if (!in)
+		{
+			fprintf(stderr, "Failed to open %s\n", argv[i + 2]);
+			return 2;
+		}
+
+		struct initrd_file_header file = {
+			.size = file_size(in),
+		};
+
+		strncpy(file.name, 64, argv[i + 2]);
+
+		char c;
+		while ((c = getc(in)) != EOF)
+		{
+			putc(c, out);
+		}
+		fclose(in);
+	}
+	fclose(out);
 }
