diff --git a/README.md b/README.md
index b563302..af280d1 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,31 @@
-# miniLLMFlow
+
miniLLMFlow
+
+
+
+Minimalist LLM framework in [100 lines](minillmflow/__init__.py). Express popular LLM paradigms like agents, task decomposition, chain of thought, RAG, and more.
+
+- Install via ```pip install minillmflow```. Or just copy the [source codes](minillmflow/__init__.py) (it's only 100 lines)
+- We **strongly recommened** using LLMs (e.g., Claude, ChatGPT, Cursor) to build LLM applications with [this prompt](minillmflow/docs/prompt)
+
+## Why miniLLMFlow?
+
+The future of programming will be heavily LLM-assited, and LLMs:
+
+1. **👍 Excel at Feature Implementation**:
+Give proper context/docs, they know how to use APIs, tools, text chunking, prompt wrapping, etc.
+These shouldn't be part of an LLM framework, as they're hard to maintain, update, and optimize.
+
+2. **👎 Suck at Paradigm Design**:
+Paradigms like MapReduce, DAG workflows, and recent agents are powerful for reasoning about problems.
+However, designing elegant paradigms is challenging, and LLMs tend to write redundant code.
+
+Can we build a framework that:
+(1) removes redunant feature implementations,
+(2) but keep core paradigms for LLMs to program against?
+
+Turns out that we just need 100 lines of codes.
+
+
+

+
+
diff --git a/docs/prompt b/docs/prompt
new file mode 100644
index 0000000..30404ce
--- /dev/null
+++ b/docs/prompt
@@ -0,0 +1 @@
+TODO
\ No newline at end of file
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..97caa74
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,11 @@
+from setuptools import setup, find_packages
+
+setup(
+ name="minillmflow",
+ version="0.0.0",
+ packages=find_packages(),
+ author="Zachary Huang",
+ author_email="zh2408@columbia.edu",
+ description="A Minimalist Framework for LLM Workflows in 100 Lines of Code",
+ url="https://github.com/zachary62/miniLLMFlow",
+)
\ No newline at end of file