# nsflow - A FastAPI based client for NeuroSan
Note: To see and use how nsflow client works along with neuro-san library, please visit [https://github.com/cognizant-ai-lab/neuro-san-studio](https://github.com/cognizant-ai-lab/neuro-san-studio)
**nsflow** is a react-based developer-oriented client that enables users to explore, visualize, and interact with smart agent networks. It integrates with [**NeuroSan**](https://github.com/cognizant-ai-lab/neuro-san) for intelligent agent-based interactions.

---
## **Installation & Running nsflow**
Prerequisite: install `ffmpeg` for text-to-speech and speech-to-text support
- On Mac
```bash
brew install ffmpeg
```
- On Linux
```bash
sudo apt install ffmpeg
```
- On windows, follow the [instructions](https://phoenixnap.com/kb/ffmpeg-windows) here.
**nsflow** can be installed and run in **two different ways:**
### **1️⃣ Run nsflow using pypi package**
To simplify execution, nsflow provides a CLI command to start both the backend and frontend simultaneously.
#### **Step 1: Create and source a virtual environment**
```bash
python -m venv .venv
source .venv/bin/activate
```
#### **Step 2: Install nsflow from pip**
```bash
pip install nsflow
```
#### **Step 3: Run Everything with a Single Command**
```bash
python -m nsflow.run
```
By default, this will start:
- **backend** (FastAPI + NeuroSan) here: `http://127.0.0.1:4173/docs` or `http://127.0.0.1:4173/redoc`
- **frontend** (React) here: `http://127.0.0.1:4173`
---
### **2️⃣ Development & Contribution (Manually Start Frontend & Backend)**
If you want to contribute, ensure you have the necessary dependencies installed.
To start the frontend and backend separately, follow these steps:
#### **Step 1: Clone the Repository**
```bash
git clone https://github.com/cognizant-ai-lab/nsflow.git
cd nsflow
```
#### **Step 2: Install Dependencies**
- Make sure you have python (preferably **Python 3.12**) installed.
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
```
#### **Step 3: Start the Backend in dev mode & Frontend separately**
- Ensure that you have a few example hocon files in your `registries` and the same mapped in `registries/manifest`.
- [Optional] Ensure that you have the necessary coded tools in the `coded_tools` dir.
- From the root start Backend:
```bash
python -m nsflow.run --dev
```
- Start Frontend:
- Ensure that you have **Node.js (with Yarn)** installed.
- Follow the instructions to setup the frontend here: [./nsflow/frontend/README.md](https://github.com/cognizant-ai-lab/nsflow/tree/main/nsflow/frontend/README.md)
- On another terminal window
```bash
cd nsflow/frontend; yarn install
yarn dev
```
- By default:
- **backend** will be available at: `http://127.0.0.1:8005`
- **frontend** will be available at: `http://127.0.0.1:5173`
- You may change the host/port configs using environment variables for fastapi (refer [run.py](./nsflow/run.py)) and using [frontend/.env.development](./nsflow/frontend/.env.development) for react app
#### **Step 4: To make sure your changes to frontend take effect in the wheel, run the script**
- To build the Frontend
```bash
sh build_scripts/build_frontend.sh
```
Note: The above script's output should show that `./nsflow` dir contains a module `prebuilt_frontend`
- To build and test the wheel locally
```bash
sh build_scripts/build_wheel.sh
```
---
Raw data
{
"_id": null,
"home_page": null,
"name": "nsflow",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "NsFlow, NeuroSan, agent-network",
"author": "Deepak",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/5b/16/0652106053ab990cf5ceb4aa6edd033236a23b8f50e9ed3cd00262126125/nsflow-0.5.19.tar.gz",
"platform": null,
"description": "# nsflow - A FastAPI based client for NeuroSan\n\nNote: To see and use how nsflow client works along with neuro-san library, please visit [https://github.com/cognizant-ai-lab/neuro-san-studio](https://github.com/cognizant-ai-lab/neuro-san-studio)\n\n\n**nsflow** is a react-based developer-oriented client that enables users to explore, visualize, and interact with smart agent networks. It integrates with [**NeuroSan**](https://github.com/cognizant-ai-lab/neuro-san) for intelligent agent-based interactions.\n\n\n\n---\n\n## **Installation & Running nsflow**\n\nPrerequisite: install `ffmpeg` for text-to-speech and speech-to-text support\n\n- On Mac\n```bash\nbrew install ffmpeg\n```\n\n- On Linux\n```bash\nsudo apt install ffmpeg\n```\n\n- On windows, follow the [instructions](https://phoenixnap.com/kb/ffmpeg-windows) here.\n\n**nsflow** can be installed and run in **two different ways:**\n\n### **1\ufe0f\u20e3 Run nsflow using pypi package**\nTo simplify execution, nsflow provides a CLI command to start both the backend and frontend simultaneously.\n\n#### **Step 1: Create and source a virtual environment**\n```bash\npython -m venv .venv\nsource .venv/bin/activate\n```\n\n#### **Step 2: Install nsflow from pip**\n```bash\npip install nsflow\n```\n\n#### **Step 3: Run Everything with a Single Command**\n```bash\npython -m nsflow.run\n```\n\nBy default, this will start:\n- **backend** (FastAPI + NeuroSan) here: `http://127.0.0.1:4173/docs` or `http://127.0.0.1:4173/redoc`\n- **frontend** (React) here: `http://127.0.0.1:4173`\n\n---\n\n### **2\ufe0f\u20e3 Development & Contribution (Manually Start Frontend & Backend)**\nIf you want to contribute, ensure you have the necessary dependencies installed. \nTo start the frontend and backend separately, follow these steps:\n\n#### **Step 1: Clone the Repository**\n```bash\ngit clone https://github.com/cognizant-ai-lab/nsflow.git\ncd nsflow\n```\n\n#### **Step 2: Install Dependencies**\n- Make sure you have python (preferably **Python 3.12**) installed.\n ```bash\n python -m venv .venv\n source .venv/bin/activate\n pip install -r requirements.txt\n pip install -r requirements-dev.txt\n ```\n\n#### **Step 3: Start the Backend in dev mode & Frontend separately**\n- Ensure that you have a few example hocon files in your `registries` and the same mapped in `registries/manifest`.\n- [Optional] Ensure that you have the necessary coded tools in the `coded_tools` dir.\n\n- From the root start Backend:\n ```bash\n python -m nsflow.run --dev\n ```\n\n- Start Frontend:\n - Ensure that you have **Node.js (with Yarn)** installed.\n - Follow the instructions to setup the frontend here: [./nsflow/frontend/README.md](https://github.com/cognizant-ai-lab/nsflow/tree/main/nsflow/frontend/README.md)\n - On another terminal window\n ```bash\n cd nsflow/frontend; yarn install\n yarn dev\n ```\n\n- By default:\n - **backend** will be available at: `http://127.0.0.1:8005`\n - **frontend** will be available at: `http://127.0.0.1:5173`\n - You may change the host/port configs using environment variables for fastapi (refer [run.py](./nsflow/run.py)) and using [frontend/.env.development](./nsflow/frontend/.env.development) for react app\n\n\n#### **Step 4: To make sure your changes to frontend take effect in the wheel, run the script**\n\n- To build the Frontend\n ```bash\n sh build_scripts/build_frontend.sh\n ```\n\nNote: The above script's output should show that `./nsflow` dir contains a module `prebuilt_frontend`\n\n- To build and test the wheel locally\n ```bash\n sh build_scripts/build_wheel.sh\n ```\n---\n",
"bugtrack_url": null,
"license": null,
"summary": "A Neuro-San powered Smart Agent Network Framework",
"version": "0.5.19",
"project_urls": {
"Documentation": "https://github.com/cognizant-ai-lab/nsflow#readme",
"Homepage": "https://github.com/cognizant-ai-lab/nsflow",
"Repository": "https://github.com/cognizant-ai-lab/nsflow"
},
"split_keywords": [
"nsflow",
" neurosan",
" agent-network"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "67506c7bb587446679233b41a7b5800ceb653af399f761e330386b17832e3745",
"md5": "0a552761b0eabe678d5795ec23f4d59f",
"sha256": "506ccce65e4877cb767183a89ee843c9b5e5db0dd02f7134479dd6d18f5d7437"
},
"downloads": -1,
"filename": "nsflow-0.5.19-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0a552761b0eabe678d5795ec23f4d59f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 318493,
"upload_time": "2025-09-03T17:44:42",
"upload_time_iso_8601": "2025-09-03T17:44:42.588968Z",
"url": "https://files.pythonhosted.org/packages/67/50/6c7bb587446679233b41a7b5800ceb653af399f761e330386b17832e3745/nsflow-0.5.19-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5b160652106053ab990cf5ceb4aa6edd033236a23b8f50e9ed3cd00262126125",
"md5": "5d2de3ac08cde696e1a05ad2aecf8271",
"sha256": "94951679761abe91518a16bda31353a0b9760cd8d1077b63d1d4c18075926bf0"
},
"downloads": -1,
"filename": "nsflow-0.5.19.tar.gz",
"has_sig": false,
"md5_digest": "5d2de3ac08cde696e1a05ad2aecf8271",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 310330,
"upload_time": "2025-09-03T17:44:43",
"upload_time_iso_8601": "2025-09-03T17:44:43.935518Z",
"url": "https://files.pythonhosted.org/packages/5b/16/0652106053ab990cf5ceb4aa6edd033236a23b8f50e9ed3cd00262126125/nsflow-0.5.19.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-03 17:44:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cognizant-ai-lab",
"github_project": "nsflow#readme",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [
{
"name": "fastapi-cors",
"specs": [
[
">=",
"0.0.6"
]
]
},
{
"name": "fastapi",
"specs": [
[
">=",
"0.115.8"
]
]
},
{
"name": "graphviz",
"specs": [
[
"==",
"0.20.3"
]
]
},
{
"name": "jupyterlab",
"specs": [
[
"==",
"4.4.0"
]
]
},
{
"name": "pyhocon",
"specs": [
[
">=",
"0.3.61"
]
]
},
{
"name": "uvicorn",
"specs": [
[
">=",
"0.34.0"
]
]
},
{
"name": "websockets",
"specs": [
[
">=",
"14.2"
]
]
},
{
"name": "wsproto",
"specs": [
[
">=",
"1.2.0"
]
]
},
{
"name": "nbformat",
"specs": [
[
">=",
"5.10.4"
]
]
},
{
"name": "pydantic",
"specs": [
[
">=",
"2.9.2"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "gTTS",
"specs": [
[
"==",
"2.5.4"
]
]
},
{
"name": "SpeechRecognition",
"specs": [
[
"==",
"3.14.3"
]
]
},
{
"name": "pydub",
"specs": [
[
"==",
"0.25.1"
]
]
},
{
"name": "python-multipart",
"specs": [
[
"==",
"0.0.20"
]
]
}
],
"lcname": "nsflow"
}